Thread: Error opening Bob

Results 1 to 6 of 6
  1. #1 Error opening Bob 
    Registered Member Turm-PK's Avatar
    Join Date
    Oct 2011
    Posts
    221
    Thanks given
    1
    Thanks received
    9
    Rep Power
    34
    I've jsut finished a summoning tutorial, but when i try and click store on my familiar i get an error in cmd

    Code:
    [18/08/12 10:34]: java.lang.NullPointerException
    [18/08/12 10:34]:       at server.model.players.skills.summoning.Storage.isBoBFa
    miliar(Storage.java:60)
    [18/08/12 10:34]:       at server.model.players.ActionHandler.secondClickNpc(Act
    ionHandler.java:1812)
    [18/08/12 10:34]:       at server.model.players.packets.ClickNPC.processPacket(C
    lickNPC.java:186)
    [18/08/12 10:34]:       at server.model.players.PacketHandler.processPacket(Pack
    etHandler.java:137)
    [18/08/12 10:34]:       at server.model.players.Client.processQueuedPackets(Clie
    nt.java:2149)
    [18/08/12 10:34]:       at server.model.players.PlayerHandler.process(PlayerHand
    ler.java:163)
    [18/08/12 10:34]:       at server.task.impl.ProcessPlayerHandler$1.run(ProcessPl
    ayerHandler.java:15)
    [18/08/12 10:34]:       at server.GameEngine$4.run(GameEngine.java:161)
    [18/08/12 10:34]:       at java.util.concurrent.Executors$RunnableAdapter.call(U
    nknown Source)
    [18/08/12 10:34]:       at java.util.concurrent.FutureTask$Sync.innerRun(Unknown
     Source)
    [18/08/12 10:34]:       at java.util.concurrent.FutureTask.run(Unknown Source)
    [18/08/12 10:34]:       at java.util.concurrent.ThreadPoolExecutor.runWorker(Unk
    nown Source)
    [18/08/12 10:34]:       at java.util.concurrent.ThreadPoolExecutor$Worker.run(Un
    known Source)
    [18/08/12 10:34]:       at java.lang.Thread.run(Unknown Source)
    [18/08/12 10:34]: Error handling packet 17 - size: 2
    Here's a pic of what it also looks like.
    Reply With Quote  
     

  2. #2  
    Spoonfeed Me Bitch
    AddictivePkz's Avatar
    Join Date
    Jun 2012
    Age
    28
    Posts
    733
    Thanks given
    79
    Thanks received
    51
    Rep Power
    0
    Hmmm.. Post the link to the guide u used.
    Quote Originally Posted by Fakeblitz View Post
    What does [PI] mean? (sorry i am used to 503+)
    And what base is this?
    Reply With Quote  
     

  3. #3  
    Registered Member Turm-PK's Avatar
    Join Date
    Oct 2011
    Posts
    221
    Thanks given
    1
    Thanks received
    9
    Rep Power
    34
    You don't need the tut what files do you want to look at.
    Reply With Quote  
     

  4. #4  
    Registered Member Turm-PK's Avatar
    Join Date
    Oct 2011
    Posts
    221
    Thanks given
    1
    Thanks received
    9
    Rep Power
    34
    Here's some files you may need

    Code:
    package server.model.players.skills.summoning;
    
    import server.Server;
    import server.util.Misc;
    import server.model.players.Client;
    import server.model.npcs.NPC;
    import server.model.npcs.NPCHandler;
    import server.event.CycleEvent;
    import server.event.CycleEventHandler;
    import server.event.CycleEventContainer;
    import server.model.players.DialogueHandler;
    
    import java.util.HashMap;
    
    /**
     *
     * http://runescape.wikia.com/wiki/Summoning_familiars
     *
     * To-Do:
     *		- Interaction (dialogues, etc)
     *		- Calling follower
     *		- Attacking (possibly)
     */
    
    public class Summoning {
    
    	private static final int EXP_MULTIPLIER = 100;
    
    	protected enum Familiar { //info from 634 npc list/item.cfg
    		//NAME(pouchID, levelReq, time(minutes), pointsAmountNeeded, xp, combatLevel, lifePoints, scrollID, npcID, attack, defence, scrollName);
    		SPIRIT_WOLF(12047, 1, 6, 1, 0.1, 26, 150, 12425, 6829, 10, 10, "Howl"),
    		DREADFOWL(12043, 4, 4, 1, 0.1, 26, 160, 12445, 6825, 15, 10, "Dreadfowl Strike"),
    		SPIRIT_SPIDER(12059, 10, 15, 2, 0.2, 25, 180, 12428, 6841, 10, 15, "Egg Spawn"),
    		THORNY_SNAIL(12019, 13, 16, 2, 0.2, 26, 280, 12459, 6806, 20, 10, "Slime Spray"),
    		GRANITE_CRAB(12009, 16, 18, 2, 0.2, 26, 160, 12533, 6796, 15, 25, "Stony Shell"),
    		SPIRIT_MOSQUITO(12778, 17, 12, 2, 0.5, 32, 430, 12838, 7331, 25, 20, "Pester"),
    		DESERT_WYRM(12049, 18, 19, 1, 0.4, 31, 470, 12460, 6831, 30, 20, "Electric Lash"),
    		SPIRIT_SCORPION(12055, 19, 17, 2, 0.9, 51, 670, 12432, 6837, 30, 30, "Venom Shot"),
    		SPIRIT_TZKIH(12808, 22, 18, 3, 1.1, 36, 630, 12839, 7361, 35, 20, "Fireball Assault"),
    		ALBINO_RAT(12067, 23, 22, 3, 2.3, 37, 680, 12430, 6847, 30, 30, "Cheese Feast"),
    		SPIRIT_KALPHITE(12063, 25, 22, 3, 2.5, 39, 770, 12446, 6994, 30, 35, "Sandstorm"),
    		COMPOST_MOUND(12091, 28, 24, 6, 0.6, 37, 930, 12440, 6871, 45, 45, "Generate Compost"),
    		GIANT_CHINCHOMPA(12800, 29, 31, 1, 2.9, 42, 970, 12834, 7353, 20, 40, "Explode"),
    		
    		SPIRIT_TERRORBIRD(12007, 52, 36, 6, 0.8, 62, 2330, 12441, 6794, 75, 200, "Tireless run"),
    		King_Black_Dragon(12075, 96, 50, 10, 4.8, 225, 7100, 12435, 50, 200, 350, "Note"),
    		PACK_YAK(12093, 96, 58, 10, 4.8, 135, 7100, 12435, 6873, 200, 350, "Winter Storage");
    		
    		private int pouchID, levelReq, time, summonPointsNeeded, combatLevel, lifePoints, scrollID, npcID, attackLevel, defenceLevel;
    		private double xp;
    		private String specialAttackName;
    		
    		private Familiar(int pouchID, int levelReq, int time, int summonPointsNeeded, double xp, int combatLevel, int lifePoints, int scrollID, int npcID, int attackLevel, int defenceLevel, String specialAttackName) {
    			this.pouchID = pouchID;
    			this.levelReq = levelReq;
    			this.time = time;
    			this.summonPointsNeeded = summonPointsNeeded;
    			this.combatLevel = combatLevel;
    			this.lifePoints = lifePoints;
    			this.scrollID = scrollID;
    			this.npcID = npcID;
    			this.attackLevel = attackLevel;
    			this.defenceLevel = defenceLevel;
    			this.specialAttackName = specialAttackName;
    		}
    		
    		private final int getPouchID() {
    			return pouchID;
    		}
    		
    		private final int getLevelRequired() {
    			return levelReq;
    		}
    		
    		private final int getTimer() {
    			return time;
    		}
    		
    		private final int getSummoningPointsRequired() {
    			return summonPointsNeeded;
    		}
    		
    		private final int getXP() {
    			return (int) (xp * EXP_MULTIPLIER);
    		}
    		
    		private final int getCombatLevel() {
    			return combatLevel;
    		}
    		
    		private final int getLifePoints() {
    			return lifePoints;
    		}
    		
    		private final int getScrollID() {
    			return scrollID;
    		}
    		
    		protected final int getNPCID() {
    			return npcID;
    		}
    		
    		private final int getAttackLevel() {
    			return attackLevel;
    		}
    		
    		private final int getDefenceLevel() {
    			return defenceLevel;
    		}
    		
    		private final String getSpecialAttackName() {
    			return specialAttackName;
    		}
    		
    		protected final String getFamiliarName() {
    			return Misc.optimizeText(toString().toLowerCase().replaceAll("_", " "));
    		}
    		
    		public static HashMap <Integer, Familiar> familiars = new HashMap <Integer, Familiar> ();
    		
    		public static Familiar forID(int id) {
    			return familiars.get(id);
    		}
    		
    		static {
    			for (Familiar f : Familiar.values())
    				familiars.put(f.getPouchID(), f);
    		}
    	}//summon on pouch is 2nd click right? yeh 
    	
    	public static void summonFamiliar(Client player, int pouchID) {
    		Familiar f = Familiar.forID(pouchID);
    		if (!player.getItems().playerHasItem(pouchID))
    			return;
    		if (player.hasFamiliar) {
    			player.sendMessage("You already have a familiar!");
    			return;
    		}
    		if (f.getLevelRequired() > getLevel(player)) {
    			player.sendMessage("You need a summoning level of " + f.getLevelRequired() + " or above to summon this familiar.");
    			return;
    		}
    		if (player.playerLevel[player.summoning] - f.getSummoningPointsRequired() < 0) {
    			player.sendMessage("Not enough summoning points, recharge at an obelisk.");
    			return;
    		}
    		player.getItems().deleteItem(pouchID, 1);
    		player.familiarMinutes = f.getTimer();
    		player.familiarSeconds = 0;
    		player.getPA().sendFrame75(f.getNPCID(), 17027);
    		spawnFamiliar(player, f.getNPCID());
    		player.playerLevel[player.summoning] -= f.getSummoningPointsRequired();
    		player.getPA().refreshSkill(player.summoning);
    	}
    	
    	public static final boolean npcIsFamiliar(Client p, NPC n) {
    		return n.index == p.familiarIndex;
    	}
    	
    	public static void castSpecial(Client p) {
    		if (!p.hasFamiliar) {
    			p.sendMessage("You do not have a familiar.");
    			return;
    		}
    		for (Familiar f : Familiar.values()) {
    			if (f.getNPCID() == p.familiarID) {
    				if (!p.getItems().playerHasItem(f.getScrollID())) {
    					p.sendMessage("You do not have the correct scroll to do this.");
    					return;
    				}
    				FamiliarAbilities.activateSpecial(p);
    			}
    		}
    	}
    	
    	public static void rechargeAtObelisk(Client player) {
    		if (player.playerLevel[player.summoning] >= getLevel(player)) {
    			player.sendMessage("You already have full summoning points.");
    			return;
    		}
    		//player.gfx0(-1); //Need GFX
    		player.startAnimation(8502);
    		player.playerLevel[player.summoning] = getLevel(player);
    		player.getPA().refreshSkill(player.summoning);
    		player.sendMessage("You recharge your summoning points.");
    	}
    	
    	public static final int getLevel(Client player) {
    		return player.getLevelForXP(player.playerXP[player.summoning]);
    	}
    	
    	public static void dismissFamiliar(Client player, boolean dropStoredItems, boolean clearSummonText) {
    		if (!player.hasFamiliar) {
    			player.sendMessage("You do not have a familiar to dismiss.");
    			return;
    		}
    		for (NPC n : NPCHandler.npcs) {
    			if (n != null && n.index == player.familiarIndex) {
    				player.hasFamiliar = false;
    				if (dropStoredItems) {
    					for (int i = 0; i < player.getStorage().itemInBoB.length; i++) {
    						if (player.getStorage().itemInBoB[i] > 0) {
    							Server.itemHandler.createGroundItem(player, player.getStorage().itemInBoB[i], n.absX, n.absY, 1, player.playerId);
    							player.getStorage().itemInBoB[i] = 0;
    							player.getStorage().refreshBoB(i);
    							player.familiarID = -1;
    						}
    					}
    				}
    				player.familiarIndex = -1;
    				n.index = -1;
    				n.isDead = true;
    				n.applyDead = true;
    				n.needsToRespawn = false;
    				n.summonedNPC = false;
    				n.NPCSLOT = -1;
    				if (clearSummonText) {
    					player.getPA().sendFrame126(Integer.toString(player.playerLevel[player.summoning]) + "/" + Integer.toString(getLevel(player)), 18045);
    					player.getPA().sendFrame126("", 18028);
    					player.getPA().sendFrame75(4000, 18021);
    					player.getPA().sendFrame106(3);
    					player.setSidebarInterface(10, 17011);
    					player.getPA().sendFrame126(":follower:off", -1);
    					player.getPA().sendFrame126(":familiarSpecial:", -1);
    				}
    				player.updateRequired = true;
    				player.appearanceUpdateRequired = true;
    			}
    		}
    	}
    	
    	public static final boolean itemIsPouch(int itemID) {
    		return Familiar.familiars.containsKey(itemID);
    	}
    	
    	public static void renewFamiliar(Client p) {
    		if (!p.hasFamiliar) {
    			p.sendMessage("You do not have a familiar to renew.");
    			return;
    		}
    		for (Familiar f : Familiar.values()) {
    			if (p.familiarID == f.getNPCID()) {
    				if (!p.getItems().playerHasItem(f.getPouchID())) {
    					p.sendMessage("You do not have the correct pouch to renew your familiar.");
    					break;
    				}
    				if (p.playerLevel[p.summoning] - f.getSummoningPointsRequired() < 0) {
    					p.sendMessage("Not enough summoning points, recharge at an obelisk.");
    					return;
    				}
    				dismissFamiliar(p, false, true);
    				p.familiarMinutes = f.getTimer();
    				p.familiarSeconds = 0;
    				spawnFamiliar(p, f.getNPCID());
    				p.getPA().sendFrame126(Integer.toString(p.playerLevel[p.summoning]) + "/" + Integer.toString(getLevel(p)), 18045);
    				p.getPA().sendFrame126(f.getFamiliarName(), 18028);
    				p.getPA().sendFrame75(f.getNPCID(), 18021);
    				p.setSidebarInterface(14, 18017);
    				p.getPA().sendFrame126(":follower:on", -1);
    				p.updateRequired = true;
    				p.appearanceUpdateRequired = true;
    				p.getPA().sendFrame126(":familiarSpecial:" + f.getSpecialAttackName(), -1);
    				p.getItems().deleteItem(f.getPouchID(), 1);
    				p.playerLevel[p.summoning] -= f.getSummoningPointsRequired();
    				p.getPA().refreshSkill(p.summoning);
    			}
    		}
    	}
    	
    	public static void bankBoB(Client p) {
    		for (int i = 0; i < p.getStorage().itemInBoB.length; i++) {
    			if (p.getStorage().itemInBoB[i] > 0)
    				p.getItems().bankItem(p.getStorage().itemInBoB[i], i, 1);
    		}
    	}
    	
    	private static void refreshTabTimer(Client player) {
    		if (player.familiarSeconds > 0)
    			player.familiarSeconds--;
    		else {
    			player.familiarMinutes--;
    			player.familiarSeconds = 60;
    		}
    		if (player.familiarSeconds == 60)
    			player.getPA().sendFrame126(Integer.toString(player.familiarMinutes + 1) + ".00", 18043);
    		else if (player.familiarSeconds == 30)
    			player.getPA().sendFrame126(Integer.toString(player.familiarMinutes) + "." + Integer.toString(player.familiarSeconds), 18043);
    		if (player.familiarMinutes == 1 && player.familiarSeconds == 0)
    			player.sendMessage("<col=16449536>Your familiar has 1 minute left before it dissapears.");
    		else if (player.familiarMinutes == 0 && player.familiarSeconds == 30)
    			player.sendMessage("<col=16449536>Your familiar has 30 seconds left before it dissapears.");
    	}
    	
    	private static void startFamiliarEvent(final Client player, final NPC familiar) {
    		if (player.familiarEvent)
    			return;
    		player.familiarEvent = true;
    		CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
    			@Override
    			public void execute(CycleEventContainer container) {
    				if (!player.hasFamiliar) {
    					container.stop();
    					return;
    				}
    				if (player.playerLevel[player.summoning] > 0) {
    					player.playerLevel[player.summoning]--;
    					player.getPA().refreshSkill(player.summoning);
    					player.getPA().sendFrame126(Integer.toString(player.playerLevel[player.summoning]) + "/" + Integer.toString(getLevel(player)), 18045);
    				}
    				//player.sendMessage("Minutes: " + player.familiarMinutes + ", Seconds: " + player.familiarSeconds);
    			}
    			@Override
    			public void stop() {
    			}
    		}, 100);
    		CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
    			@Override
    			public void execute(CycleEventContainer container2) {
    				if (!player.hasFamiliar) {
    					container2.stop();
    					return;
    				}
    				if (player.familiarMinutes <= 0 && player.familiarSeconds <= 0) {
    					dismissFamiliar(player, true, true);
    					container2.stop();
    					return;
    				}
    				refreshTabTimer(player);
    				/*if (familiar.distanceToPoint(player.getX(), player.getY(), 2))
    					familiar.isRunning = true;
    				else if (familiar.distanceToPoint(player.getX(), player.getY(), 8))
    					callFamiliar(player, familiar);
    				else if (familiar.distanceToPoint(player.getX(), player.getY(), 1))
    					familiar.isRunning = false;*/
    				//if (familiar.walkingToNPC == null && familiar.attackingNPC == null)
    				Server.npcHandler.npcs[familiar.NPCSLOT].followPlayer= familiar.NPCSLOT;// about the last error. i checked ur npchandler and theres no npcs vs npc combat in there. so u cnt fix this error.
    				if (familiar.inWild()) {
    					player.familiarTransformed = true;
    					familiar.requestTransform(familiar.npcType + 1);
    					familiar.updateRequired = true;
    					//player.familiarID++;
    				} else if (player.familiarTransformed && !familiar.inWild()) {
    					player.familiarTransformed = false;
    					familiar.requestTransform(familiar.npcType);
    					//player.familiarID--;
    				}
    			}
    			@Override
    			public void stop() {
    			}
    		}, 1);
    	}
    	
    	public static void callFamiliar(Client p, NPC n) {
    		if (!p.hasFamiliar) {
    			p.sendMessage("You do not have a familiar to call.");
    			return;
    		}
    		
    	}
    	
    	public static void spawnFamiliar(Client player, int npcID) {
    		int emptySlot = -1;
    		for (int j = 0; j < NPCHandler.npcs.length; j++) {
    			if (NPCHandler.npcs[j] == null)
    				emptySlot = j;
    		}
    		if (emptySlot == -1)
    			return;
    		NPC familiar = new NPC(emptySlot, npcID);
    		familiar.index = emptySlot;
    		familiar.absX = player.absX;
    		familiar.absY = player.absY - NPCHandler.followDistance(npcID);
    		familiar.makeX = player.absX;
    		familiar.makeY = player.absY - NPCHandler.followDistance(npcID);
    		familiar.heightLevel = player.heightLevel;
    		familiar.gfx0(1315);
    		for (Familiar f : Familiar.values()) {
    			if (f.getNPCID() == npcID) {
    				player.getPA().sendFrame126(Integer.toString(player.playerLevel[player.summoning]) + "/" + Integer.toString(getLevel(player)), 18045);
    				player.getPA().sendFrame126(f.getFamiliarName(), 18028);
    				player.getPA().sendFrame75(f.getNPCID(), 18021);
    				//player.getPA().sendFrame200(18021, DialogueHandler.CONTENT); //for head anims
    				player.setSidebarInterface(10, 18017);
    				player.getPA().sendFrame126(":follower:on", -1);
    				player.updateRequired = true;
    				player.appearanceUpdateRequired = true;
    				player.getPA().sendFrame126(":familiarSpecial:" + f.getSpecialAttackName(), -1);
    				familiar.HP = f.getLifePoints();
    				familiar.attack = f.getAttackLevel();
    				familiar.defence = f.getDefenceLevel();
    			}
    		}
    		player.familiarIndex = emptySlot;
    		player.familiarID = familiar.npcType;
    		player.hasFamiliar = true;
    		familiar.summonedNPC = true;
    		familiar.facePlayer(player.getId());
    		familiar.followPlayer = player.getId();
    		familiar.NPCSLOT = emptySlot;
    		NPCHandler.npcs[emptySlot] = familiar;
    		familiar.updateRequired = true;
    		startFamiliarEvent(player, familiar);
    	}
    }
    Code:
    package server.model.players.skills.summoning;
    
    import server.Config;
    import server.Server;
    import server.util.Misc;
    import server.model.npcs.NPC;
    import server.model.npcs.NPCHandler;
    import server.model.players.Client;
    import server.model.items.ItemAssistant;
    import server.model.players.skills.summoning.Summoning;
    
    import java.util.HashMap;
    
    public class Storage {
    
    	private Client player;
    	public Storage(Client c) {
    		this.player = c;
    	}
    	public boolean isStoringItems;
    	public int[] itemInBoB = new int[31];
    	
    	private enum BoB {
    		THORNY_SNAIL(3, 6806), SPIRIT_KALPHITE(6, 6994), BULL_ANT(9, 6867),
    		SPIRIT_TERRORBIRD(12, 6794), ABYSSAL_PARASITE(7, 6818), ABYSSAL_LURKER(7, 6820),
    		WAR_TORTOISE(18, 6815), ABYSSAL_TITAN(7, 7349), PACK_YAK(30, 6873);
    		
    		private int numberOfSlots, familiarID;
    		
    		private BoB(int numberOfSlots, int familiarID) {
    			this.numberOfSlots = numberOfSlots;
    			this.familiarID = familiarID;
    		}
    		
    		private final int getNumberOfSlots() {
    			return numberOfSlots;
    		}
    		
    		private static HashMap <Integer, BoB> bob = new HashMap <Integer, BoB> ();
    		
    		private static BoB getBoBForID(int forID) {
    			return bob.get(forID);
    		}
    		
    		static {
    			for (BoB b : BoB.values()) {
    				bob.put(b.familiarID, b);
    				bob.put(b.familiarID + 1, b);
    			}
    		}
    	}
    	
    	public final boolean isBoBFamiliar(NPC n) {
    		return BoB.bob.containsKey(n.npcType);
    	}
    	
    	public void openBoBInterface(NPC n) {
    		if (player.familiarIndex != n.index) {
    			player.sendMessage("This is not your familiar.");
    			player.getStorage().isStoringItems = false;
    			return;
    		}
    		player.getStorage().isStoringItems = true;
    		player.isBanking = false;
    		for (int j = 0; j < 31; j++)
    		player.getStorage().refreshBoB(j);
    		player.getItems().resetItems(5064);
    		player.getItems().resetTempItems();
    		player.getOutStream().createFrame(248);
    		player.getOutStream().writeWordA(2700);
    		player.getOutStream().writeWord(5063);
    		player.getPA().sendFrame87(286, 0);
    		player.flushOutStream();
    		player.getItems().resetKeepItems();
    	}
    	
    	public final void withdrawItem(int removeID, int slot, int amount) {
    		if (!player.hasFamiliar) {
    			player.sendMessage("You do not have a familiar.");
    			return;
    		}
    		if (removeID <= 0)
    			return;
    		if (bobIsEmpty()) {
    			player.sendMessage("Your beast of burden is empty.");
    			return;
    		}
    		if (amount == 1) {
    			if (player.getStorage().itemInBoB[slot] != removeID)
    				return;
    			if (player.getItems().freeSlots() < 1) {
    				player.sendMessage("Not enough space in your inventory.");
    				return;
    			}
    			player.getStorage().itemInBoB[slot] = 0;
    			player.getPA().sendFrame34(2702, -1, slot, 1);
    			player.getItems().addItem(removeID, 1);
    			player.getStorage().refreshBoB(slot);
    			player.getItems().resetItems(5064);
    			player.getItems().resetTempItems();
    			player.getItems().resetKeepItems();
    			//player.sendMessage("removeID " + removeID + " amount: "+amount);			
    		} else if (amount > 1) {
    			int amountWithdrawn = 0;
    			//BoB b = BoB.getBoBForID(player.familiarID);
    			for (int j = 0; j < player.getStorage().itemInBoB.length; j++) { //might have to do this backwards (check how it is on RS) (int j = b.getNumberOfSlots; j >= 0; j--)
    				if (player.getStorage().itemInBoB[j] == removeID) {
    					if (amountWithdrawn >= amount)
    						break;
    					if (player.getItems().freeSlots() < 1) {
    						player.sendMessage("Not enough space in your inventory.");
    						break;
    					}
    					player.getStorage().itemInBoB[j] = -1;
    					player.getPA().sendFrame34(2702, -1, j, 1);
    					player.getItems().addItem(removeID, 1);
    					player.getStorage().refreshBoB(j);
    					player.getItems().resetItems(5064);
    					player.getItems().resetTempItems();
    					player.getItems().resetKeepItems();
    					amountWithdrawn++;
    				}
    			}
    		}
    	}
    	
    	public void storeItem(int itemID, int slot, int amount) {
    		if (!player.hasFamiliar) {
    			player.sendMessage("You do not have a familiar.");
    			return;
    		}
    		if (!player.getItems().playerHasItem(itemID))
    			return;
    		BoB b = BoB.getBoBForID(player.familiarID);
    		if (b != null) {
    			if (ItemAssistant.isStackable(itemID)) {
    				player.sendMessage("You cannot store stackable items!");
    				return;
    			}
    			for (int i : Config.ITEM_TRADEABLE) {
    				player.sendMessage("You cannot store untradeable items!");
    				return;
    			}
    			if (amount == 1) {
    				int emptySlot = -1;
    				for (int i = 0; i < player.getStorage().itemInBoB.length; i++) {
    					if (player.getStorage().itemInBoB[i] <= 0) {
    						emptySlot = i;
    						break;
    					}
    				}
    				if (emptySlot >= b.getNumberOfSlots()) {
    					player.sendMessage("Your BoB is full!");
    					return;
    				}
    				player.isBanking = false;
    				player.getItems().deleteItem(itemID, 1);
    				player.getStorage().itemInBoB[emptySlot] = itemID;
    				player.getPA().Frame34(2702, player.getStorage().itemInBoB[emptySlot], emptySlot, 1);
    			} else if (amount > 1) {
    				amount = amount > player.getItems().getItemAmount(itemID) ? player.getItems().getItemAmount(itemID) : amount;
    				int totalItemsStored = 0;
    				for (int i = 0; i < player.getStorage().itemInBoB.length; i++) {
    					if (player.getStorage().itemInBoB[i] <= 0) {
    						if (totalItemsStored >= amount)
    							break;
    						if (i >= b.getNumberOfSlots()) {
    							player.sendMessage("Your BoB is full!");
    							break;
    						}
    						totalItemsStored++;
    						player.getStorage().itemInBoB[i] = itemID;
    						player.getItems().deleteItem(itemID, 1);
    						player.getPA().Frame34(2702, player.getStorage().itemInBoB[i], i, 1);
    					}
    				}
    			}
    			for (int j = 0; j < b.getNumberOfSlots(); j++)
    				player.getStorage().refreshBoB(j);
    			player.getItems().resetItems(5064);
    			player.getItems().resetTempItems();
    			player.getOutStream().createFrame(248);
    			player.getOutStream().writeWordA(2700);
    			player.getOutStream().writeWord(5063);
    			player.getPA().sendFrame87(286, 0);
    			player.getItems().resetKeepItems();
    		}
    	}
    	
    	public void withdrawBoB() {
    		if (!player.hasFamiliar) {
    			player.sendMessage("You do not have a familiar.");
    			return;
    		}
    		if (bobIsEmpty()) {
    			player.sendMessage("Your beast of burden is empty.");
    			return;
    		}
    		for (int i = 0; i < player.getStorage().itemInBoB.length; i++) {
    			if (player.getStorage().itemInBoB[i] > 0) {
    				if (player.getItems().freeSlots() < 1) {
    					player.sendMessage("Not enough space in your inventory.");
    					break;
    				}
    				player.startAnimation(827);
    				player.getItems().addItem(player.getStorage().itemInBoB[i], 1);
    				player.getStorage().itemInBoB[i] = 0;
    				player.getPA().sendFrame34(2702, -1, i, 1);
    				player.getStorage().refreshBoB(i);
    				player.getItems().resetItems(5064);
    				player.getItems().resetTempItems();
    				player.getItems().resetKeepItems();
    			}
    		}
    	}
    	
    	public final int getItemAmount(int itemID) {
    		int itemAmount = 0;
    		for (int i = 0; i < player.getStorage().itemInBoB.length; i++) {
    			if (player.getStorage().itemInBoB[i] == itemID)
    				itemAmount++;
    		}
    		return itemAmount;
    	}
    	
    	public void refreshBoB(int index) {
    		player.getPA().Frame34(2702, player.getStorage().itemInBoB[index] > 0 ? player.getStorage().itemInBoB[index] : -1, index, player.getStorage().itemInBoB[index] > 0 ? 1 : -1);
    		player.getItems().resetItems(5064);
    	}
    	
    	private final boolean bobIsEmpty() {
    		BoB b = BoB.getBoBForID(player.familiarID);
    		int amountOfEmptySlots = 0;
    		if (b != null) {
    			for (int i = 0; i < b.getNumberOfSlots(); i++) {
    				if (player.getStorage().itemInBoB[i] <= 0)
    					amountOfEmptySlots++;
    			}
    		}
    		return amountOfEmptySlots >= b.getNumberOfSlots();
    	}
    }

    Actionhandler

    Code:
    package server.model.players;
    import server.model.players.CombatAssistant;
    import server.model.players.skills.summoning.FamiliarInteraction;
    import server.model.players.skills.summoning.Summoning;
    
    import server.Config;
    import server.Server;
    import server.model.npcs.NPCHandler;
    import server.model.objects.Object;
    import server.util.Misc;
    import server.util.ScriptManager;
    import server.model.minigames.*;
    
    public class ActionHandler {
    	
    	private Client c;
    	
    	public ActionHandler(Client Client) {
    		this.c = Client;
    	}
    	
    	public void resetPlayerAttack() {
    		c.inCombat = false;
    		c.usingMagic = false;
    		c.npcIndex = 0;
    		c.faceUpdate(0);
    		c.playerIndex = 0;
    		c.getPA().resetFollow();
    		//c.sendMessage("Reset attack.");
    	}
    	
    	public void firstClickObject(int objectType, int obX, int obY) {
    		c.clickObjectType = 0;
    			if(c.playerRights == 3)	
    		c.sendMessage("Object type: " + objectType);
    		switch(objectType) {
    		
    		case 381:
            	if(c.MiniQuest == 0) {
            		c.getDH().sendDialogues(49, 0);
            		c.MiniQuest += 1;
            		c.getItems().addItem(2886, 1);
            		//c.sendMessage("Perhaps this is a secret quest?");
            		return;
            	}
            	break;
    
    	
    		case 172:
    			if (!c.getItems().playerHasItem(989,1)) {
    			c.sendMessage("You need a crystal key to open this chest--To get keys kill monsters");
    			}
    			 else if(c.getItems().playerHasItem(989,1)) {
    				c.getItems().addItem(c.getPA().randomCrap(), 1);
    				c.getItems().deleteItem(989,1);
    				if (Misc.random(20) == 1)
    					c.getItems().addItem(c.getPA().randomClue1(), 1);
    			} else if(c.getItems().playerHasItem(989,1)) {
    				c.sendMessage("You need at least 2 inventory slot opened.");
    			}
    			break;
    			
    		case 1276:
    			c.getWoodcutting().startWoodcutting(0, c.objectX, c.objectY, c.clickObjectType);
    			break;
    		case 1278:
    			c.getWoodcutting().startWoodcutting(1, c.objectX, c.objectY, c.clickObjectType);
    			break;
    		case 1286:
    			c.getWoodcutting().startWoodcutting(2, c.objectX, c.objectY, c.clickObjectType);
    			break;
    		case 1281:
    			c.getWoodcutting().startWoodcutting(3, c.objectX, c.objectY, c.clickObjectType);
    			break;
    		case 1308:
    			c.getWoodcutting().startWoodcutting(4, c.objectX, c.objectY, c.clickObjectType);
    			break;
    		case 5552:
    			c.getWoodcutting().startWoodcutting(5, c.objectX, c.objectY, c.clickObjectType);
    			break;
    		case 1307:
    			c.getWoodcutting().startWoodcutting(6, c.objectX, c.objectY, c.clickObjectType);
    			break;
    		case 1309:
    			c.getWoodcutting().startWoodcutting(7, c.objectX, c.objectY, c.clickObjectType);
    			break;
    		case 1306:
    			c.getWoodcutting().startWoodcutting(8, c.objectX, c.objectY, c.clickObjectType);
    			break;
    		case 5551:
    			c.getWoodcutting().startWoodcutting(9, c.objectX, c.objectY, c.clickObjectType);
    			break;
    		case 5553:
    			c.getWoodcutting().startWoodcutting(10, c.objectX, c.objectY, c.clickObjectType);
    			break;
    
    case 2471:
    c.getDH().sendDialogues(43,-1);
    //c.getPA().movePlayer(2722, 5105, 0);
    break;
    case 2470:
    c.getPA().movePlayer(3089, 3498, 0);
    break;
    case 26303:
    c.getPA().movePlayer(3056, 9562, 0);
    break;
    
    case 410:
    			if (c.playerMagicBook == 0) {
    				if(c.playerEquipment[c.playerWeapon] == 4675 || c.playerEquipment[c.playerWeapon] == 15050 || c.playerEquipment[c.playerWeapon] == 15040) {
    				c.setSidebarInterface(0, 328);
    				}
    				c.playerMagicBook = 2;
    				c.setSidebarInterface(6, 16640);
    				c.sendMessage("Your mind becomes stirred with thoughs of dreams.");
    				c.getPA().resetAutocast();
    			} else {
    				if(c.playerEquipment[c.playerWeapon] == 4675 || c.playerEquipment[c.playerWeapon] == 15050 || c.playerEquipment[c.playerWeapon] == 15040) {
    				c.setSidebarInterface(0, 328);
    				}
    				c.setSidebarInterface(6, 1151);
    				c.playerMagicBook = 0;
    				c.sendMessage("You feel a drain on your memory.");
    				c.autocastId = -1;
    				c.getPA().resetAutocast();
    			}
    		break;  
    		case 10595:
    
    c.getPA().movePlayer(3056, 9562, 0);
    c.sendMessage("You have " + c.Frost + " points!");
    
    
    c.sendMessage("You must get an abbysal book/frost book from the slayer shop to enter the frost cave.");
    
    break;
    case 2472:
    c.getPA().movePlayer(3056, 9555, 4);
    c.sendMessage("Slay Frost Dragons for points to buy chaotic items!");
    break;
    			case 12266:
    			if (!c.getItems().playerHasItem(1546,1)) {
    			c.sendMessage("You need a blue key to open enter this trap door");
    			}
    			 else if(c.getItems().playerHasItem(1546,1)) {
    				c.getPA().movePlayer(2806, 9200, 0);
    			}
    			break;
    			case 12617:
    			if (!c.getItems().playerHasItem(1546,1)) {
    			c.sendMessage("You need a purple key to open enter this cave");
    			}
    			 else if(c.getItems().playerHasItem(1547,1)) {
    				//c.getPA().movePlayer(2806, 9200, 0);
    			}
    			break;
    		case 6452:
    			if (c.absX == 3304 && c.absY == 9376) {
    		c.getPA().movePlayer(3305, 9376, 4);
    		c.sendMessage("Prepare for the strongest monster in the game!");
    		c.sendMessage("Note: It has 3 waves on it's hp bar!");
    				} else {
    			c.autoRet = 0;
    			c.getCombat().resetPlayerAttack();
    		        c.getPA().movePlayer(3304, 9376, 0);
    				}
    		break;
    		case 26428:
    		      if (c.Zammy < 15 && c.absX == 2925 && c.absY == 5332) {
    		       c.sendMessage("You need atleast 15 Zamorak KC to enter here!");
    		       return;
    		       }	
    		       if(c.absX == 2925 && c.absY == 5332) {
    		        c.getPA().movePlayer(2925, 5331, 6);
    		       c.Zammy -= 15;
    		       c.sendMessage("A magical force reseted your Zamorak kill count!");
    		      }
    		        if(c.absX == 2925 && c.absY == 5331) {
    		        c.getPA().movePlayer(2925, 5332, 2);
    			c.autoRet = 0;
    			c.getCombat().resetPlayerAttack();
    		      }
    		break;
    		case 26425:
    		      if (c.Band < 15 && c.absX == 2863 && c.absY == 5354) {
    		       c.sendMessage("You need atleast 15 Bandos KC to enter here!");
    		       return;
    		       }	
    		      if(c.absX == 2863 && c.absY == 5354) {
    	     	    	 c.getPA().movePlayer(2864, 5354, 6);
    		       c.Band -= 15;
    		       c.sendMessage("A magical force reseted your Bandos kill count!");
    		      }
    		       if(c.absX == 2864 && c.absY == 5354) {
    	     	      c.getPA().movePlayer(2863, 5354, 2);
    			c.autoRet = 0;
    			c.getCombat().resetPlayerAttack();
    		      }
    		break;
    		
    		case 556:
    		 if (c.Arma < 15) {
    		       c.sendMessage("You need atleast 15 Armadyl KC to enter here!");
    		       return;
    	} else {
    		        c.getPA().movePlayer(2897, 3619, 4);
    		       c.Arma -= 15;
    		       c.sendMessage("A magical force reseted your Armadyl kill count!");
    		      }
    		break;
    		case 26426:
    		      if (c.Arma < 15 && c.absX == 2839 && c.absY == 5295) {
    		       c.sendMessage("You need atleast 15 Armadyl KC to enter here!");
    		       return;
    		       }		       
    		       if(c.absX == 2839 && c.absY == 5295) {
    		        c.getPA().movePlayer(2839, 5296, 6);
    		       c.Arma -= 15;
    		       c.sendMessage("A magical force reseted your Armadyl kill count!");
    		      }
    		       if(c.absX == 2839 && c.absY == 5296) {
    		        c.getPA().movePlayer(2839, 5295, 2);
    			c.autoRet = 0;
    			c.getCombat().resetPlayerAttack();
    		      }
    		break;
    		case 26427:
    		      if (c.Sara < 15 && c.absX == 2908 && c.absY == 5265) {
    		       c.sendMessage("You need atleast 15 Saradomin KC to enter here!");
    		       return;
    		       }	
    		       if(c.absX == 2908 && c.absY == 5265) {
    		       c.Sara -= 15;
    		       c.sendMessage("A magical force reseted your Saradomin kill count!");
    		        c.getPA().movePlayer(2907, 5265, 4);
    		      }
    		       if(c.absX == 2907 && c.absY == 5265) {
    		        c.getPA().movePlayer(2908, 5265, 0);
    			c.autoRet = 0;
    			c.getCombat().resetPlayerAttack();
    		      }
    		break;
    		case 6451:
    			if (c.absX == 3304 && c.absY == 9375) {
    		c.getPA().movePlayer(3305, 9375, 4);
    		c.sendMessage("Prepare for the strongest monster in the game!");
    		c.sendMessage("Note: It has 3 waves on it's hp bar!");
    				} else {
    			c.autoRet = 0;
    			c.getCombat().resetPlayerAttack();
    		        c.getPA().movePlayer(3304, 9375, 0);
    				}
    		break;
    	
    			case 26288:
    			case 26287:
    			case 26286:
    			case 26289:
    			
    				if(c.gwdelay > 1) {
    				c.sendMessage("You can only do this once every 5 minute!");
    				return;
    				}	
    		if(c.playerLevel[5] < c.getPA().getLevelForXP(c.playerXP[5])) {
    				c.startAnimation(645);
    				c.playerLevel[5] = c.getPA().getLevelForXP(c.playerXP[5]);
    				c.sendMessage("You recharge your prayer points.");
    				c.getPA().refreshSkill(5);
    				c.gwdelay = 600;
    			} else {
    				c.sendMessage("You already have full prayer points.");
    			}
     
    			break;
    			case 411:
    				if(c.altarPrayed == 0) {
    				c.altarPrayed = 1;
    				c.setSidebarInterface(5, 22500);
    				c.startAnimation(645);
    				c.sendMessage("You sense a surge of power flow through your body!");
    				c.getCombat().resetPrayers();
    				} else {
    				c.altarPrayed = 0;
    				c.setSidebarInterface(5, 5608);
    				c.startAnimation(645);
    				c.sendMessage("You sense a surge of purity flow through your body!");
    				c.getCurse().resetCurse();
    				} 
    			case 1558:
    			c.getPA().movePlayer(3092, 3485, 0);
    			break;
    			/*case 1568:
    			if (!c.getItems().playerHasItem(1586,1)) {
    			c.sendMessage("You need a miscalenous key to enter the cave");
    			}
    			 else if(c.getItems().playerHasItem(1586,1)) {
    				c.getPA().movePlayer(2033, 4636, 0);
    				c.getItems().deleteItem(1586,1);
    				}
    			c.getPA().movePlayer(3104, 9909, 0);
    			break;*/
    		case 2:
    		/*if (c.teleBlockDelay > 0) {
    		
    		
    		return;
    		}*/
    		if(c.playerLevel[13] < 82) {
    		c.sendMessage("You need 82 smithing to enter this cave OH NOES!");
    		return;	
    		}
    		if(c.playerLevel[10] < 92) {
    		c.sendMessage("You need 92 fishing to enter this cave OH NOES!");
    		return;	
    		} 
    		c.getPA().movePlayer(2399, 4681, 0);
    		c.sendMessage("Wow i can't believe you made it, now move east for the DEMONS!");
    		
    		break;
    
                case 4411:
                case 4415:
                case 4417:
                case 4418:
                case 4419:
                case 4420:
                case 4469:
                case 4470:
                case 4911:
                case 4912:
                case 1747:
                case 1757:
                case 4437:
                case 6281:
                case 6280:
                case 4472:
                case 4471:
                case 4406:
                case 4407:
                case 4458:
                case 4902:
                case 4903:
                case 4900:
                case 4901:
                case 4461:
                case 4463:
                case 4464:
                case 4377:
                case 4378:
                    CastleWarObjects.handleObject(c, objectType, obX, obY);
                case 1568:
                    if (obX == 3097 && obY == 3468) {
                        c.getPA().movePlayer(3097, 9868, 0);
                    } else {
                        CastleWarObjects.handleObject(c, obY, obY, obY);
                    }
                    break;
    
    	
    		case 2466:	
    		if (c.teleBlockDelay > 0) {
    		
    		if (c.underAttackBy > 0) {
    		return;
    		}
    		}
    		
    		
    		//c.getPA().spellTeleport(3073, 3504, 0);
    		c.getPA().movePlayer(3073, 3504, 0);
    		return;
    		
    		case 2561:
    			c.getThieving().stealFromStall(995, 120000, 10, 1);
    		break;
    		case 2560:
    			c.getThieving().stealFromStall(995, 120000, 40, 40);
    		break;
    			
    		case 4800:
    			if (c.objectX == 2777 && c.objectY == 9195) {
    				if (c.absX < 2777) {
    					c.getPA().walkTo(1, 0);
    				} else {
    					c.getPA().walkTo(-1 , 0);
    				}
    			}
    			
    		break;
    
    case 1516:
    			if (c.objectX == 2737 && c.objectY == 3477) {
    				if (c.absY < 2737) {
    					c.getPA().walkTo(0, 1);
    				} else {
    					c.getPA().walkTo(0 , -1);
    				}
    			}
    			
    		break;
    	case 4801: //dungeon to apes needs donor
    		if (c.memberStatus < 1) {
    					c.sendMessage("You need to be a donator to use this");
    					
    				return;
    				}
    			c.getPA().movePlayer(2806, 2785, 0);
    		break;
    case 4879:
    if (c.memberStatus < 1) {
    					c.sendMessage("You need to be a donator to use this");
    					
    				return;
    				}
    c.getPA().movePlayer(2806, 9200, 0);
    break;
    case 7049:
    case 7050:
    c.getPA().movePlayer(3078, 3259, 0);
    break;
    case 4881:
    if (c.memberStatus < 1) {
    					c.sendMessage("You need to be a donator to use this");
    					
    				return;
    				}
    			c.getPA().movePlayer(2806, 2785, 0);
    		break;
    		case 2564:
    			c.getThieving().stealFromStall(995, 160000, 60, 60);
    		break;
    		case 2562:
    			c.getThieving().stealFromStall(995, 300000, 80, 80);
    		break;
    		case 9299:
    			if (c.absY <= 3190) {
    					c.getPA().walkTo(0, 1);
    				} else {
    					c.getPA().walkTo(0, -1);
    				}
    			break;
    		case 1528:
    			if (c.objectX == 3182 && c.objectY == 2984) {
    				if (c.absX < 3183) {
    					c.getPA().walkTo(1, 0);
    				} else {
    					c.getPA().walkTo(-1 , 0);
    				}
    			}
    			if (c.objectX == 3172 && c.objectY == 2977) {
    				if (c.absY >= 2977) {
    					c.getPA().walkTo(0, -1);
    				} else if (c.absY < 2977) {
    					c.getPA().walkTo(0, 1);
    				}
    			}
    		break;
    		case 11844:
    			if (c.absX == 2936) {
    			c.getPA().walkTo(-1, 0);
    			} else if (c.absX == 2935) {
    			c.getPA().walkTo(1, 0);
    			}
    		break;
    		case 4383:
    			c.getPA().movePlayer(2442, 10147, 0);
    		break;
    		case 8966:
    			c.getPA().movePlayer(2510, 3644, 0);
    		break;
    		case 4577:
    			if (c.absY == 3635) {
    				c.getPA().walkTo(0,1);
    			} else {
    				c.getPA().walkTo(0,-1);
    			}
    		break;
    		case 4558:
    		case 4559:
    			c.getPA().movePlayer(2522, 3595, 0);
    		break;
    		case 4551:
    			c.getPA().movePlayer(2514, 3619, 0);
    		break;
    		case 9358:
    			c.getPA().movePlayer(2480, 5175, 0);
    		break;
    		case 9359:
    			c.getPA().movePlayer(2862, 9572, 0);
    		break;
    		case 492:
    			c.getPA().movePlayer(2856, 9570, 0);
    		break;
    		case 1764:
    			if (c.objectX == 2856 && c.objectY == 9569) {
    				c.getPA().movePlayer(2858, 3168, 0);
    			}
    		break;
    		case 4031:
    			if (c.absY == 3117) {
    			if (c.getItems().playerHasItem(995,5)) {
    				c.getItems().deleteItem(995,c.getItems().getItemSlot(995), 5);
    				c.getPA().walkTo(0, -2);
    			} else {
    				c.sendMessage("You need 5 coins to go through here.");
    				}
    			}
    			if (c.absY == 3115) {
    				c.getPA().walkTo(0, 2);
    			}
    		break;
    		case 2406:
    			if (c.absX > 3201) {
    				c.getPA().walkTo(-1,0);
    			} else {
    				c.getPA().walkTo(1,0);
    			}
    		break;
    		case 3725:
    		case 3726:
    			if (c.absX > 2824) {
    				c.getPA().walkTo(-1,0);
    			} else {
    				c.getPA().walkTo(1,0);
    			}
    		break;
    		case 3745:
    			if (c.absX >= 2823) {
    				c.getPA().walkTo(-1,0);
    			} else {
    				c.getPA().walkTo(1,0);
    			}
    		break;
    			
    		case 7257:
    			if (c.objectX == 2905 && c.objectY == 3537) {
    				c.getPA().movePlayer(3061, 4983, 1);
    			}
    		break;
    		case 11867:
    			if (c.objectX == 3019 && c.objectY == 3450) {
    				c.getPA().movePlayer(3058, 9776, 0);
    			}
    		break;
    		case 1755:
    			if (c.objectX == 3019 && c.objectY == 9850) {
    				c.getPA().movePlayer(3018, 3450, 0);
    			}
    		break;
    		case 4615:
    			if (c.objectX == 2596 && c.objectY == 3608) {
    				c.getPA().movePlayer(2598, 3608, 0);
    			}
    		break;
    		case 2475:
    			if (c.objectX == 3233 && c.objectY == 9312) {
    				c.getPA().movePlayer(3233, 2887, 0);
    			}
    		break;
    		case 6481:
    			if (c.objectX == 3233 && c.objectY == 2888) {
    				c.getPA().movePlayer(3234, 9312, 0);
    			}
    		break;
    		case 2492:
    			
    			if (c.killCount >= 10) {
    				c.getDH().sendOption4("Armadyl", "Bandos", "Saradomin", "Zamorak");
    				c.dialogueAction = 20;
    			} else {
    				c.sendMessage("You need 10 kill count before teleporting to a boss chamber.");
    			}
    		break;
    		
    		case 1765: //kbd lader
    			c.stopMovement();
    			c.freezeTimer = 2;
    			resetPlayerAttack();
    			c.getPA().movePlayer(3067, 10256, 0);
    		break;
    		case 2882:
    		case 2883:
    			if (c.objectX == 3268) {
    				if (c.absX < c.objectX) {
    					c.getPA().walkTo(1,0);
    				} else {
    					c.getPA().walkTo(-1,0);
    				}
    			}
    		break;
    		case 272:
    			c.getPA().movePlayer(c.absX, c.absY, 1);
    		break;
    		
    		case 273:
    			c.getPA().movePlayer(c.absX, c.absY, 0);
    		break;
    		case 245:
    			c.getPA().movePlayer(c.absX, c.absY + 2, 2);
    		break;
    		case 246:
    			c.getPA().movePlayer(c.absX, c.absY - 2, 1);
    		break;
    		case 1766:
    			c.getPA().movePlayer(3016, 3849, 0);
    		break;
    		case 6552:
    			if (c.playerMagicBook == 0) {
    				if(c.playerEquipment[c.playerWeapon] == 4675 || c.playerEquipment[c.playerWeapon] == 15050 || c.playerEquipment[c.playerWeapon] == 15040) {
    				c.setSidebarInterface(0, 328);
    				}
    				c.playerMagicBook = 1;
    				c.setSidebarInterface(6, 12855);
    				c.sendMessage("An ancient wisdomin fills your mind.");
    				c.getPA().resetAutocast();
    			} else {
    				if(c.playerEquipment[c.playerWeapon] == 4675 || c.playerEquipment[c.playerWeapon] == 15050 || c.playerEquipment[c.playerWeapon] == 15040) {
    				c.setSidebarInterface(0, 328);
    				}
    				c.setSidebarInterface(6, 1151); //modern
    				c.playerMagicBook = 0;
    				c.sendMessage("You feel a drain on your memory.");
    				c.autocastId = -1;
    				c.getPA().resetAutocast();
    			}	
    		break;
    		
    		case 1816:
    			resetPlayerAttack();
    			c.getPA().startTeleport2(2271, 4680, 0);			
    		break;
    		case 1817:
    			c.getPA().startTeleport(3067, 10253, 0, "modern");
    		break;
    		case 1814:
    			//ardy lever
    			c.getPA().startTeleport(3153, 3923, 0, "modern");
    		break;
    		
    		case 9356:
    			c.getPA().enterCaves();
    			//c.sendMessage("PLEASE LOG OUT AND BACK IN FOR YOUR WAVES TO START!");
    			//c.sendMessage("If you don't get a new wave relog it will fix");
    		break;
    		case 1733:
    			c.getPA().movePlayer(c.absX, 10322, 0);
    		break;
    		
    		case 1734:
    			if (c.absY != 10323) {
    			c.getPA().movePlayer(3018, 3450, 0);
    			} else {
    			c.getPA().movePlayer(3044, 3927, 0);
    			}
    		break;
    		
    		case 9357:
    			c.getPA().resetTzhaar();
    		break;
    		
    		case 8959:
    			if (c.getX() == 2490 && (c.getY() == 10146 || c.getY() == 10148)) {
    				if (c.getPA().checkForPlayer(2490, c.getY() == 10146 ? 10148 : 10146)) {
    					new Object(6951, c.objectX, c.objectY, c.heightLevel, 1, 10, 8959, 15);	
    				}			
    			}
    		break;
    		case 5276: //bank wyv
    		if (c.memberStatus < 1) {
    					c.sendMessage("You need to be a donator to use this bank booth");
    					
    				return;
    				}
    		c.getPA().openUpBank();
    		break;
    		case 2213:
    		case 14367:
    		case 11758:
    		case 3193:
    		case 2693:
    			c.getPA().openUpBank();
    		break;
    		
    		case 10177:
    			c.getPA().movePlayer(1890, 4407, 0);
    		break;
    		case 10230:
    			c.getPA().movePlayer(2900, 4449, 0);
    		break;
    		case 10229:
    			c.getPA().movePlayer(1912, 4367, 0);
    		break;
    		case 2623:
    			if (c.absX >= c.objectX)
    				c.getPA().walkTo(-1,0);
    			else
    				c.getPA().walkTo(1,0);
    		break;
    		//pc boat
    		case 14315:
    			c.getPA().movePlayer(2661,2639,0);
    		break;
    		case 14314:
    			c.getPA().movePlayer(2657,2639,0);
    		break;
    		
    		case 1596:
    		case 1597:
    		if (c.absX == 2936) {
    			c.getPA().walkTo(-1,0);
    		} else {
    			c.getPA().walkTo(1,0);
    		}
    		if (c.absY != 3451 && c.absY != 3450) {
    		if (c.getY() >= c.objectY)
    			c.getPA().walkTo(0,-1);
    		else
    			c.getPA().walkTo(0,1);
    		}
    		break;
    		
    		case 14235:
    		case 14233:
    			if (c.objectX == 2670)
    				if (c.absX <= 2670)
    					c.absX = 2671;
    				else
    					c.absX = 2670;
    			if (c.objectX == 2643)
    				if (c.absX >= 2643)
    					c.absX = 2642;
    				else
    					c.absX = 2643;
    			if (c.absX <= 2585)
    				c.absY += 1;
    			else c.absY -= 1;
    			c.getPA().movePlayer(c.absX, c.absY, 0);
    		break;
    		
    		case 14829: case 14830: case 14827: case 14828: case 14826: case 14831:
    			Server.objectHandler.startObelisk(objectType);
    			Server.objectManager.startObelisk(objectType);
    		break;
    		
    		
    		case 9369:
    			if (c.getY() > 5175)
    				c.getPA().movePlayer(2399, 5175, 0);
    			else
    				c.getPA().movePlayer(2399, 5177, 0);
    		break;
    		
    		
    		
    		
    		
    		
    		case 2286:
    		case 154:
    		case 4058:
    		case 2295:
    		case 2285:
    		case 2313:
    		case 2312:
    		case 2314:
    			c.getAgility().handleGnomeCourse(objectType,obX,obY);
    		break;
    		
    		//barrows
    		//Chest
    		case 10284:
    			if(c.barrowsKillCount < 5) {
    				c.sendMessage("You haven't killed all the brothers");
    			}
    			if(c.barrowsKillCount == 5 && c.barrowsNpcs[c.randomCoffin][1] == 1) {
    				c.sendMessage("I have already summoned this npc.");
    			}
    			if(c.barrowsNpcs[c.randomCoffin][1] == 0 && c.barrowsKillCount >= 5) {
    				Server.npcHandler.spawnNpc(c, c.barrowsNpcs[c.randomCoffin][0], 3551, 9694-1, 0, 0, 120, 30, 200, 200, true, true);
    				c.barrowsNpcs[c.randomCoffin][1] = 1;
    			}
    			if((c.barrowsKillCount > 5 || c.barrowsNpcs[c.randomCoffin][1] == 2) && c.getItems().freeSlots() >= 2) {
    				c.getPA().resetBarrows();
    				c.getItems().addItem(c.getPA().randomRunes(), Misc.random(150) + 100);
    				//if (Misc.random(2) == 1)
    					c.getItems().addItem(c.getPA().randomBarrows(), 1);
    				c.getPA().startTeleport(3564, 3288, 0, "modern");
    			} else if(c.barrowsKillCount > 5 && c.getItems().freeSlots() <= 1) {
    				c.sendMessage("You need at least 2 inventory slot opened.");
    			}
    			break;
    		//doors
    		case 6749:
    			if(obX == 3562 && obY == 9678) {
    				c.getPA().object(3562, 9678, 6749, -3, 0);
    				c.getPA().object(3562, 9677, 6730, -1, 0);
    			} else if(obX == 3558 && obY == 9677) {
    				c.getPA().object(3558, 9677, 6749, -1, 0);
    				c.getPA().object(3558, 9678, 6730, -3, 0);
    			}
    			break;
    		case 6730:
    			if(obX == 3558 && obY == 9677) {
    				c.getPA().object(3562, 9678, 6749, -3, 0);
    				c.getPA().object(3562, 9677, 6730, -1, 0);
    			} else if(obX == 3558 && obY == 9678) {
    				c.getPA().object(3558, 9677, 6749, -1, 0);
    				c.getPA().object(3558, 9678, 6730, -3, 0);
    			}
    			break;
    		case 6727:
    			if(obX == 3551 && obY == 9684) {
    				c.sendMessage("You cant open this door..");
    			}
    			break;
    		case 6746:
    			if(obX == 3552 && obY == 9684) {
    				c.sendMessage("You cant open this door..");
    			}
    			break;
    		case 6748:
    			if(obX == 3545 && obY == 9678) {
    				c.getPA().object(3545, 9678, 6748, -3, 0);
    				c.getPA().object(3545, 9677, 6729, -1, 0);
    			} else if(obX == 3541 && obY == 9677) {
    				c.getPA().object(3541, 9677, 6748, -1, 0);
    				c.getPA().object(3541, 9678, 6729, -3, 0);
    			}
    			break;
    		case 6729:
    			if(obX == 3545 && obY == 9677){
    				c.getPA().object(3545, 9678, 6748, -3, 0);
    				c.getPA().object(3545, 9677, 6729, -1, 0);
    			} else if(obX == 3541 && obY == 9678) {
    				c.getPA().object(3541, 9677, 6748, -1, 0);
    				c.getPA().object(3541, 9678, 6729, -3, 0);
    			}
    			break;
    		case 6726:
    			if(obX == 3534 && obY == 9684) {
    				c.getPA().object(3534, 9684, 6726, -4, 0);
    				c.getPA().object(3535, 9684, 6745, -2, 0);
    			} else if(obX == 3535 && obY == 9688) {
    				c.getPA().object(3535, 9688, 6726, -2, 0);
    				c.getPA().object(3534, 9688, 6745, -4, 0);
    			}
    			break;
    		case 6745:
    			if(obX == 3535 && obY == 9684) {
    				c.getPA().object(3534, 9684, 6726, -4, 0);
    				c.getPA().object(3535, 9684, 6745, -2, 0);
    			} else if(obX == 3534 && obY == 9688) {
    				c.getPA().object(3535, 9688, 6726, -2, 0);
    				c.getPA().object(3534, 9688, 6745, -4, 0);
    			}
    			break;
    		case 6743:
    			if(obX == 3545 && obY == 9695) {
    				c.getPA().object(3545, 9694, 6724, -1, 0);
    				c.getPA().object(3545, 9695, 6743, -3, 0);
    			} else if(obX == 3541 && obY == 9694) {
    				c.getPA().object(3541, 9694, 6724, -1, 0);
    				c.getPA().object(3541, 9695, 6743, -3, 0);
    			}
    			break;
    		case 6724:
    			if(obX == 3545 && obY == 9694) {
    				c.getPA().object(3545, 9694, 6724, -1, 0);
    				c.getPA().object(3545, 9695, 6743, -3, 0);
    			} else if(obX == 3541 && obY == 9695) {
    				c.getPA().object(3541, 9694, 6724, -1, 0);
    				c.getPA().object(3541, 9695, 6743, -3, 0);
    			}
    			break; 
    		//end doors
    		//coffins
    		case 6707: // verac
    			c.getPA().movePlayer(3556, 3298, 0);
    			break;
    			
    		case 6823:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[0][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2030, c.getX(), c.getY()-1, -1, 0, 120, 25, 200, 200, true, true);
    				c.barrowsNpcs[0][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    
    		case 6706: // torag 
    			c.getPA().movePlayer(3553, 3283, 0);
    			break;
    			
    		case 6772:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[1][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2029, c.getX()+1, c.getY(), -1, 0, 120, 20, 200, 200, true, true);
    				c.barrowsNpcs[1][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    			
    		case 6705: // karil stairs
    			c.getPA().movePlayer(3565, 3276, 0);
    			break;
    		case 6822:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[2][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2028, c.getX(), c.getY()-1, -1, 0, 90, 17, 200, 200, true, true);
    				c.barrowsNpcs[2][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    		case 6704: // guthan stairs
    			c.getPA().movePlayer(3578, 3284, 0);
    			break;
    		case 6773:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[3][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2027, c.getX(), c.getY()-1, -1, 0, 120, 23, 200, 200, true, true);
    				c.barrowsNpcs[3][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    		case 6703: // dharok stairs
    			c.getPA().movePlayer(3574, 3298, 0);
    			break;
    		case 6771:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[4][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2026, c.getX(), c.getY()-1, -1, 0, 120, 45, 250, 250, true, true);
    				c.barrowsNpcs[4][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    		case 6702: // ahrim stairs
    			c.getPA().movePlayer(3565, 3290, 0);
    			break;
    		case 6821:
    			if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
    				return;
    			}
    			if(c.barrowsNpcs[5][1] == 0) {
    				Server.npcHandler.spawnNpc(c, 2025, c.getX(), c.getY()-1, -1, 0, 90, 19, 200, 200, true, true);
    				c.barrowsNpcs[5][1] = 1;
    			} else {
    				c.sendMessage("You have already searched in this sarcophagus.");
    			}
    			break;
    			
    	/*	case 1276:
    		case 1278://trees
    			//c.sendMessage("You chop the tree.");
    			/* Woodcutting object respawning etc. by lmtruck... making my own - look at this for example
    			Objects stump = new Objects(1343, c.objectX, c.objectY, 0, -1, 10, 0);
    			Server.objectHandler.addObject(stump);
    			Server.objectHandler.placeObject(stump);
    			Objects tree = new Objects(c.objectId, c.objectX, c.objectY, 0, -1, 10, 7);
    			Server.objectHandler.addObject(tree);*/
    			//c.treeId = objectType;
    			/*c.woodcut[0] = 1511;
    			c.woodcut[1] = 1;
    			c.woodcut[2] = 25;
    			c.getWoodcutting().startWoodcutting(c.woodcut[0], c.woodcut[1], c.woodcut[2]);
    		break;
    		
    		case 1281: //oak
    			c.woodcut[0] = 1521;
    			c.woodcut[1] = 15;
    			c.woodcut[2] = 37;
    			c.getWoodcutting().startWoodcutting(c.woodcut[0], c.woodcut[1], c.woodcut[2]);
    		break;
    		
    		case 1308: //willow
    			c.woodcut[0] = 1519;
    			c.woodcut[1] = 30;
    			c.woodcut[2] = 68;
    			c.getWoodcutting().startWoodcutting(c.woodcut[0], c.woodcut[1], c.woodcut[2]);
    		break;
    		
    		case 1307: //maple
    			c.woodcut[0] = 1517;
    			c.woodcut[1] = 45;
    			c.woodcut[2] = 100;
    			c.getWoodcutting().startWoodcutting(c.woodcut[0], c.woodcut[1], c.woodcut[2]);
    		break;
    		
    		case 1309: //yew
    			c.woodcut[0] = 1515;
    			c.woodcut[1] = 60;
    			c.woodcut[2] = 175;
    			c.getWoodcutting().startWoodcutting(c.woodcut[0], c.woodcut[1], c.woodcut[2]);
    		break;
    		
    		case 1306: //yew
    			c.woodcut[0] = 1513;
    			c.woodcut[1] = 75;
    			c.woodcut[2] = 250;
    			c.getWoodcutting().startWoodcutting(c.woodcut[0], c.woodcut[1], c.woodcut[2]);
    		break;*/
    
    		
    		case 2090://copper
    		case 2091:
    			c.mining[0] = 436;
    			c.mining[1] = 1;
    			c.mining[2] = 18;
    			c.getMining().startMining(c.mining[0], c.mining[1], c.mining[2]);
    		break;
    		
    		case 2094://tin
    			c.mining[0] = 438;
    			c.mining[1] = 1;
    			c.mining[2] = 18;
    			c.getMining().startMining(c.mining[0], c.mining[1], c.mining[2]);
    		break;		
    		
    		case 145856:
    		case 2092:
    		case 2093: //iron
    			c.mining[0] = 440;
    			c.mining[1] = 15;
    			c.mining[2] = 35;
    			c.getMining().startMining(c.mining[0], c.mining[1], c.mining[2]);
    		break;
    		
    		case 14850:
    		case 14851:
    		case 14852:
    		case 2096:
    		case 2097: //coal
    			c.mining[0] = 453;
    			c.mining[1] = 30;
    			c.mining[2] = 50;
    			c.getMining().startMining(c.mining[0], c.mining[1], c.mining[2]);
    		break;		
    		
    		case 2098:
    		case 2099:
    			c.mining[0] = 444;
    			c.mining[1] = 40;
    			c.mining[2] = 65;
    			c.getMining().startMining(c.mining[0], c.mining[1], c.mining[2]);
    		break;
    		
    		case 2102:
    		case 2103:
    		case 14853:
    		case 14854:
    		case 14855: //mith ore
    			c.mining[0] = 447;
    			c.mining[1] = 55;
    			c.mining[2] = 80;
    			c.getMining().startMining(c.mining[0], c.mining[1], c.mining[2]);
    		break;
    		
    		case 2105:
    		case 14862: //addy ore
    			c.mining[0] = 449;
    			c.mining[1] = 70;
    			c.mining[2] = 95;
    			c.getMining().startMining(c.mining[0], c.mining[1], c.mining[2]);
    		break;
    		case 2107:
    		case 14859:
    		case 14860: //rune ore
    			c.mining[0] = 451;
    			c.mining[1] = 85;
    			c.mining[2] = 125;
    			c.getMining().startMining(c.mining[0], c.mining[1], c.mining[2]);
    		break;
    		
    		case 8143:
    			if (c.farm[0] > 0 && c.farm[1] > 0) {
    				c.getFarming().pickHerb();
    			}
    		break;
    	
    			// DOORS
    		/*case 1516:
    		case 1519:
    			if (c.objectY == 9698 || c.objectY == 3558) {
    				if (c.absY >= c.objectY)
    					c.getPA().walkTo(0,-1);
    				else
    					c.getPA().walkTo(0,1);
    				break;
    			}*/
    		case 1601:
    			if (c.objectY == 9488 || c.objectY == 3088) {
    				if (c.absY >= c.objectY)
    					c.getPA().walkTo(-1,0);
    				else
    					c.getPA().walkTo(1,0);
    				break;
    			}
    		case 1600:
    			if (c.objectY == 9487 || c.objectY == 3087) {
    				if (c.absY >= c.objectY)
    					c.getPA().walkTo(-1,0);
    				else
    					c.getPA().walkTo(1,0);
    				break;
    			}
    		case 1530:
    			if (c.absX == 2922) {
    				c.getPA().walkTo(-1, 0);
    			} else if (c.absX == 2921) {
    				c.getPA().walkTo(1, 0);
    			}
    			if (c.objectY == 2564 || c.objectY == 3310) {
    				if (c.absX >= c.objectX)
    					c.getPA().walkTo(-1,0);
    				else
    					c.getPA().walkTo(1,0);
    				break;
    			}
    		case 1531:
    		case 1533:
    		case 1534:
    		case 11712:
    		case 11711:
    		case 11707:
    		case 11708:
    		case 6725:
    		case 3198:
    		case 3197:
    			Server.objectHandler.doorHandling(objectType, c.objectX, c.objectY, 0);	
    			break;
    		
    		case 9319:
    			if (c.heightLevel == 0)
    				c.getPA().movePlayer(c.absX, c.absY, 1);
    			else if (c.heightLevel == 1)
    				c.getPA().movePlayer(c.absX, c.absY, 2);
    		break;
    		
    		case 9320:
    			if (c.heightLevel == 1)
    				c.getPA().movePlayer(c.absX, c.absY, 0);
    			else if (c.heightLevel == 2)
    				c.getPA().movePlayer(c.absX, c.absY, 1);
    		break;
    		
    		case 4496:
    		case 4494:
    			if (c.heightLevel == 2) {
    				c.getPA().movePlayer(c.absX - 5, c.absY, 1);
    			} else if (c.heightLevel == 1) {
    				c.getPA().movePlayer(c.absX + 5, c.absY, 0);
    			}
    		break;
    		
    		case 4493:
    			if (c.heightLevel == 0) {
    				c.getPA().movePlayer(c.absX - 5, c.absY, 1);
    			} else if (c.heightLevel == 1) {
    				c.getPA().movePlayer(c.absX + 5, c.absY, 2);
    			}
    		break;
    		
    		case 4495:
    			if (c.heightLevel == 1) {
    				c.getPA().movePlayer(c.absX + 5, c.absY, 2);
    			}
    		break;
    		
    		case 5126:
    			if (c.absY == 3554)
    				c.getPA().walkTo(0,1);
    			else
    				c.getPA().walkTo(0,-1);
    		break;
    		
    		case 1759:
    			if (c.objectX == 2884 && c.objectY == 3397)
    				c.getPA().movePlayer(c.absX, c.absY + 6400, 0);				
    		break;
    		/*case 3203: //dueling forfeit
    			if (c.duelCount > 0) {
    				c.sendMessage("You may not forfeit yet.");
    				break;
    			}
    			Client o = (Client) Server.playerHandler.players[c.duelingWith];				
    			if(o == null) {
    				c.getTradeAndDuel().resetDuel();
    				c.getPA().movePlayer(Config.DUELING_RESPAWN_X+(Misc.random(Config.RANDOM_DUELING_RESPAWN)), Config.DUELING_RESPAWN_Y+(Misc.random(Config.RANDOM_DUELING_RESPAWN)), 0);
    				break;
    			}
    			if(c.duelRule[0]) {
    				c.sendMessage("Forfeiting the duel has been disabled!");
    				break;
    			}
    			if(o != null) {
    				o.getPA().movePlayer(Config.DUELING_RESPAWN_X+(Misc.random(Config.RANDOM_DUELING_RESPAWN)), Config.DUELING_RESPAWN_Y+(Misc.random(Config.RANDOM_DUELING_RESPAWN)), 0);
    				c.getPA().movePlayer(Config.DUELING_RESPAWN_X+(Misc.random(Config.RANDOM_DUELING_RESPAWN)), Config.DUELING_RESPAWN_Y+(Misc.random(Config.RANDOM_DUELING_RESPAWN)), 0);
    				o.duelStatus = 6;
    				o.getTradeAndDuel().duelVictory();
    				c.getTradeAndDuel().resetDuel();
    				c.getTradeAndDuel().resetDuelItems();
    				o.sendMessage("The other player has forfeited the duel!");
    				c.sendMessage("You forfeit the duel!");
    				break;
    			}
    			
    			break;*/
    			
    		case 409:
    		case 4859:
    		case 2640:
    			if(c.playerLevel[5] < c.getPA().getLevelForXP(c.playerXP[5])) {
    				c.startAnimation(645);
    				c.playerLevel[5] = c.getPA().getLevelForXP(c.playerXP[5]);
    				c.sendMessage("You recharge your prayer points.");
    				c.getPA().refreshSkill(5);
    			} else {
    				c.sendMessage("You already have full prayer points.");
    			}
    			break;
    			
    		case 2873:
    			if (!c.getItems().ownsCape()) {
    				c.startAnimation(645);
    				c.sendMessage("Saradomin blesses you with a cape.");
    				c.getItems().addItem(2412, 1);
    			}	
    		break;
    		case 2875:
    			if (!c.getItems().ownsCape()) {
    				c.startAnimation(645);
    				c.sendMessage("Guthix blesses you with a cape.");
    				c.getItems().addItem(2413, 1);
    			}
    		break;
    		case 2874:
    			if (!c.getItems().ownsCape()) {
    				c.startAnimation(645);
    				c.sendMessage("Zamorak blesses you with a cape.");
    				c.getItems().addItem(2414, 1);
    			}
    		break;
    
    		case 357:
    			if(c.clueTask[1] == 1 && c.getItems().playerHasItem(2678, 1)) {
    				c.getDH().itemMessage("", "You have found a Clue scroll!", 2677, 250);
    				c.getItems().deleteItem(2678, 1);
    				c.getItems().addItem(2678, 1);
    				c.clueTask[1] = 3;
    			}
    			break;
    		
    		case 350:
    			if(c.clueTask[2] == 2 && c.getItems().playerHasItem(2679, 1)) {
    				c.getDH().itemMessage("", "You have found a Clue scroll!", 2677, 250);
    				c.getItems().deleteItem(2679, 1);
    				c.getItems().addItem(2679, 1);
    				c.clueTask[2] = 4;
    			}
    			break;
    		case 361:
    			if(c.clueTask[1] == 3 && c.getItems().playerHasItem(2678, 1)) {
    				c.getDH().itemMessage("", "You have found a casket!", 2714, 250);
    				c.getItems().deleteItem(2678, 1);
    				c.getItems().addItem(2717, 1);
    				c.clueTask[1] = 0;
    			}
    			break;		
    		case 4616:
    			c.getPA().movePlayer(2595, 3608, 0);
    		break;
    		case 2879:
    			c.getPA().movePlayer(2538, 4716, 0);
    		break;
    		case 2878:
    			c.getPA().movePlayer(2509, 4689, 0);
    		break;
    		case 5960:
    			c.getPA().startTeleport2(3090, 3956, 0);
    		break;
    		
    		case 1815:
    			c.getPA().startTeleport2(Config.EDGEVILLE_X, Config.EDGEVILLE_Y, 0);
    		break;
    		
    		case 9706:
    			c.getPA().startTeleport2(3105, 3951, 0);
    		break;
    		case 9707:
    			c.getPA().startTeleport2(3105, 3956, 0);
    		break;
    		
    		case 5959:
    			c.getPA().startTeleport2(2539, 4712, 0);
    		break;
    		
    		case 2558:
    			c.sendMessage("This door is locked.");	
    		break;
    		
    		case 9294:
    			if (c.absX < c.objectX) {
    				c.getPA().movePlayer(c.objectX + 1, c.absY, 0);
    			} else if (c.absX > c.objectX) {
    				c.getPA().movePlayer(c.objectX - 1, c.absY, 0);
    			}
    		break;
    		
    		case 9293:
    			if (c.absX < c.objectX) {
    				c.getPA().movePlayer(2892, 9799, 0);
    			} else {
    				c.getPA().movePlayer(2886, 9799, 0);
    			}
    		break;
    		case 10529:
    		case 10527:
    			if (c.absY <= c.objectY)
    				c.getPA().walkTo(0,1);
    			else
    				c.getPA().walkTo(0,-1);
    		break;
    		case 3044: //smithing
    			c.getSmithing().sendSmelting();
    			
    			if (!c.getItems().playerHasItem(4,1) && !c.getItems().playerHasItem(2353,1)) {
    			c.sendMessage("A steel bar or ammo mould to make this");
    			}
    			 else if (c.getItems().playerHasItem(4,1) && c.getItems().playerHasItem(2353,1)) {
    				c.getItems().addItem(7119, 3);
    				c.startAnimation(898);
    				c.getItems().deleteItem(2353, 1);
    			c.sendMessage("You make some cannon balls");
    				
    			}
    			
    			
    			
    		break;
    		case 733:
    			c.startAnimation(451);
    			/*if (Misc.random(1) == 1) {
    				c.getPA().removeObject(c.objectX, c.objectY);
    				c.sendMessage("You slash the web.");
    			} else {
    				c.sendMessage("You fail to slash the webs.");
    			}*/
    			if (c.objectX == 3158 && c.objectY == 3951) {
    				new Object(734, c.objectX, c.objectY, c.heightLevel, 1, 10, 733, 50);
    			} else {
    				new Object(734, c.objectX, c.objectY, c.heightLevel, 0, 10, 733, 50);
    			}
    		break;
    		
    		default:
    			ScriptManager.callFunc("objectClick1_"+objectType, c, objectType, obX, obY);
    			break;
    
    		}
    	}
    	
    	public void secondClickObject(int objectType, int obX, int obY) {
    		c.clickObjectType = 0;
    		if(c.playerRights == 3)	
    		c.sendMessage("Object type: " + objectType);
    		switch(objectType) {
    			case 2561:
    			c.getThieving().stealFromStall(995, 25000, 1, 1);
    		break;
    		case 2560:
    			c.getThieving().stealFromStall(995, 45000, 40, 40);
    		break;
    		case 2565:
    			
    		if (c.memberStatus < 1) {
    					c.sendMessage("You need to be a donator to steal from this stall you get 450k each thiev");
    					
    				return;
    				}
    				
    			c.getThieving().stealFromStall(995, 450000, 50, 1);
    			break;
    			
    
    
    		case 2564:
    			c.getThieving().stealFromStall(995, 75000, 60, 60);
    		break;
    		case 2562:
    			c.getThieving().stealFromStall(995, 120000, 80, 80);
    		break;
    			case 11666:
    			case 3044:
    				c.getSmithing().sendSmelting();
    			break;
    			case 2213:
    			case 14367:
    			case 11758:
    			case 2693:
    				c.getPA().openUpBank();
    			break;
    			
    			case 2557:
    				if (System.currentTimeMillis() - c.lastLockPick < 3 || c.freezeTimer > 0)
    					break;
    				if (c.getItems().playerHasItem(1523,1)) {
    					c.lastLockPick = System.currentTimeMillis();
    						if (Misc.random(10) <= 3){
    							c.sendMessage("You fail to pick the lock.");
    							break;
    						}
    					if (c.objectX == 3190 && c.objectY == 3957) {
    						if (c.absY == 3958) {
    							c.getPA().walkTo2(0,-1);
    						} else if (c.absY == 3957) {
    							c.getPA().walkTo2(0,1);
    						}
    					
    					} else if (c.objectX == 3191 && c.objectY == 3963) {
    						if (c.absY == 3962) {
    							c.getPA().walkTo2(0,1);
    						} else if (c.absY == 3963) {
    							c.getPA().walkTo2(0,-1);
    						}				
    					}
    				} else {
    					c.sendMessage("I need a lockpick to pick this lock.");
    				}
    			break;
    			case 2558:
    				if (System.currentTimeMillis() - c.lastLockPick < 3000 || c.freezeTimer > 0)
    					break;
    				if (c.getItems().playerHasItem(1523,1)) {
    					c.lastLockPick = System.currentTimeMillis();
    						if (Misc.random(10) <= 3){
    							c.sendMessage("You fail to pick the lock.");
    							break;
    						}
    					if (c.objectX == 3044 && c.objectY == 3956) {
    						if (c.absX == 3045) {
    							c.getPA().walkTo2(-1,0);
    						} else if (c.absX == 3044) {
    							c.getPA().walkTo2(1,0);
    						}
    					
    					} else if (c.objectX == 3038 && c.objectY == 3956) {
    						if (c.absX == 3037) {
    							c.getPA().walkTo2(1,0);
    						} else if (c.absX == 3038) {
    							c.getPA().walkTo2(-1,0);
    						}				
    					} else if (c.objectX == 3041 && c.objectY == 3959) {
    						if (c.absY == 3960) {
    							c.getPA().walkTo2(0,-1);
    						} else if (c.absY == 3959) {
    							c.getPA().walkTo2(0,1);
    						}					
    					}
    				} else {
    					c.sendMessage("I need a lockpick to pick this lock.");
    				}
    			break;
    		default:
    			ScriptManager.callFunc("objectClick2_"+objectType, c, objectType, obX, obY);
    			break;
    		}
    	}
    	
    	
    	public void thirdClickObject(int objectType, int obX, int obY) {
    		c.clickObjectType = 0;
    		if(c.playerRights == 3)	
    		c.sendMessage("Object type: " + objectType);
    		switch(objectType) {
    		default:
    			ScriptManager.callFunc("objectClick3_"+objectType, c, objectType, obX, obY);
    			break;
    		}
    	}
    	
    	public void firstClickNpc(int npcType) {
    		if (Summoning.npcIsFamiliar(c, NPCHandler.npcs[c.npcClickIndex]))
    				FamiliarInteraction.interactWithFamiliar(c);
    		c.clickNpcType = 0;
    		c.npcClickIndex = 0;
    		switch(npcType) {
    		case 33:
    			c.getDH().sendDialogues(119, 1);
    			c.sendMessage("To delete your PIN type ::delete ");
    		break;
    		case 229:
    		c.getShops().openShop(45);
    		c.sendMessage("You have" + c.votePoints + " Please remember to vote every hour and do ::voted");
    c.sendMessage("You have" + c.votePoints + " Please remember to vote every hour and do ::voted");
    c.sendMessage("You have" + c.votePoints + " Please remember to vote every hour and do ::voted");
    		break;
    	case 556:
    		 if (c.Arma < 15) {
    		       c.sendMessage("You need atleast 15 Armadyl KC to enter here!");
    		       return;
    	} else {
    		        c.getPA().movePlayer(2897, 3619, 4);
    		       c.Arma -= 15;
    		       c.sendMessage("A magical force reseted your Armadyl kill count!");
    		      }
    		break;
    		case 6731:
    				c.getShops().openShop(77);
    			break;
    			case 2261:
    				c.getPA().walkableInterface(-1);
    				c.getPA().movePlayer(2885, 5330, 2);
    			break;
    			case 2259:
    				c.getPA().movePlayer(2885, 5345, 2);
    				c.getPA().walkableInterface(12418);
    				c.sendMessage("You have entered Zamorak, To leave talk to me on the other side.");
    			break;
    			case 398:
    				c.getPA().movePlayer(2918, 5273, 0);
    				c.sendMessage("You have entered Saradomin, To leave talk to me on the other side.");
    			break;
    		case 262:
    		c.getPA().movePlayer(2855, 3542, 0);
    		break;
    			case 399:
    				c.getPA().movePlayer(2911, 5299, 2);
    			break;
    			case 1064:
    				c.getPA().movePlayer(2852, 5333, 2);
    			break;
    			
    
    
    			case 888:
    				 if (c.Band < 15) {
    		       c.sendMessage("You need atleast 15 Bandos KC to enter here!");
    		       return;
    		       }	
    		     
    	     	    	 c.getPA().movePlayer(2864, 5354, 6);
    		       c.Band -= 15;
    		       c.sendMessage("A magical force reseted your Bandos kill count!");
    		      
    		       if(c.absX == 2864 && c.absY == 5354) {
    	     	      c.getPA().movePlayer(2863, 5354, 2);
    			c.autoRet = 0;
    			c.getCombat().resetPlayerAttack();
    		      }
    		break;
    			
    
    			case 70:
    				c.getPA().movePlayer(2872, 5269, 2);
    				c.sendMessage("You have entered Armadyl, To leave click the Pillar.");
    				c.sendMessage("Note: Ruby bolts (e) and Diamond bolts (e) are recommended!");
    			break;
    		case 251:
    				c.getDH().sendDialogues(27,npcType);
    			break;
    			case 243:
    				c.getDH().sendDialogues(20,npcType);
    			break;
    			case 2262:
    				c.getDH().sendDialogues(23, npcType);
    			break;
    			case 3299:
    				c.getDH().sendDialogues(24, npcType);
    			break;
    		
    		case 461:
    				if(c.clueTask[0] == 1 && c.getItems().playerHasItem(2677, 1)) {
    					c.getDH().itemMessage("", "You have found a Clue scroll!", 2677, 250);
    					c.getItems().deleteItem(2677, 1);
    					c.getItems().addItem(2677, 1);
    					c.clueTask[0] = 3;
    				} else {
    					c.getShops().openShop(2);
    				}
    				break;
    			case 3305:			
    				if(c.clueTask[0] == 2 && c.getItems().playerHasItem(2677, 1)) {
    					c.getDH().itemMessage("", "You have found a Clue scroll!", 2677, 250);
    					c.getItems().deleteItem(2677, 1);
    					c.getItems().addItem(2677, 1);
    					c.clueTask[0] = 4;
    				}
    				break;
    				
    			case 278:
    				if(c.clueTask[1] == 2 && c.getItems().playerHasItem(2678, 1)) {
    					c.getDH().itemMessage("", "You have found a Clue scroll!", 2677, 250);
    					c.getItems().deleteItem(2678, 1);
    					c.getItems().addItem(2678, 1);
    					c.clueTask[1] = 4;
    				}
    				break;
    				
    			case 2622:
    				if(c.clueTask[2] == 1 && c.getItems().playerHasItem(2679, 1)) {
    					c.getDH().itemMessage("", "You have found a Clue scroll!", 2677, 250);
    					c.getItems().deleteItem(2679, 1);
    					c.getItems().addItem(2679, 1);
    					c.clueTask[2] = 3;
    				}
    				break;
    			case 905:
    				if(c.clueTask[1] == 2 && c.getItems().playerHasItem(2678, 1)) {
    					c.clueTask[1] = 4;
    					c.getDH().itemMessage("", "You have found a Clue scroll!", 2677, 250);
    					c.getItems().deleteItem(2678, 1);
    					c.getItems().addItem(2678, 1);
    				} else {
    					//c.getShops().openShop(12);
    				}
    				break;
    
    
    			case 887:
    				c.getShops().openShop(32);
    			break;
    			case 2244:
    			c.getDH().sendDialogues(41, 7502);
    			//c.getShops().openShop(65);
    			break;
    			case 2402:
    				c.getShops().openShop(31);
    			break;
    			case 651:
    				c.getShops().openShop(29);
    			break;
    			case 1294:
    				c.getShops().openShop(23);
    			break;
    			case 1334:
    				if (!c.getItems().ownsBook()) {
    					c.getItems().addItem(3842, 1);
    					c.sendMessage("You recieve a Unholy book from Jossik.");
    				} else {
    					c.sendMessage("You already have a book.");
    				}
    			break;
    			case 587:
    				c.getShops().openShop(22);
    			break;
    			case 3792:
    				c.getPA().movePlayer(2659, 2676, 0);
    			break;
    			case 1596:
    				c.getDH().sendDialogues(20, npcType);
    			break;
    			case 3020:
    			c.getDH().sendDialogues(20, npcType);
    			
    			break;
    			case 1918:
    			break;
    			case 3791:
    				c.getPA().movePlayer(3049, 3235, 0);
    			break;
    			case 2825:
    				c.getPA().movePlayer(2710, 9466, 0);
    				c.sendMessage("The ship boards and the pirate escorts you to the dungeon.");
    			break;
    			case 534:
    				c.getShops().openShop(21);
    			break;
    			case 1071:
    				c.getShops().openShop(19);
    			break;
    			case 706:
    				c.getDH().sendDialogues(9, npcType);
    			break;
    			case 2258:
    				c.getDH().sendDialogues(17, npcType);
    			break;
    			case 8275:
    				if (c.slayerTask <= 0) {
    					c.getDH().sendDialogues(11,npcType);
    				} else {
    					c.getDH().sendDialogues(13,npcType);
    				}
    			break;
    			
    			
    			
    			
    			case 500:
    			if (c.monkeyk0ed >= 10) {
    					c.getDH().sendDialogues(21,npcType);
    				} else {
    					c.getDH().sendDialogues(23,npcType);
    				}			
    			break;
    			/*case 461:
    				c.getShops().openShop(2);
    			break;*/
    			
    			case 683:
    				c.getShops().openShop(3);
    			break;
    			
    			case 549:
    				c.getShops().openShop(28);
    			break;
    			
    			case 2538:
    				c.getShops().openShop(6);
    			break;
    			
    			case 519:
    				c.getShops().openShop(8);
    			break;
    			case 1282:
    				c.getShops().openShop(7);
    			break;
    			case 1152:
    				c.getDH().sendDialogues(16,npcType);
    			break;
    			case 494:
    				c.getPA().openUpBank();
    			break;
    			case 2566:
    				c.getShops().openShop(31);
    			
    			break;
    			case 3789:
    				c.sendMessage("You currently have " + c.pcPoints + " pest control points.");
    			break;
    			case 3788:
    				c.getShops().openVoid();
    			break;
    			
    			case 460:
    				c.getDH().sendDialogues(3, npcType);
    			break;
    			case 462:
    				c.getDH().sendDialogues(7, npcType);
    			break;
    			case 316: //shrimp
    				c.getFishing().setupFishing(317);
    				c.startAnimation(621);
    			break;
    			case 334: //mantas
    				c.getFishing().setupFishing(389);
    				c.startAnimation(620);
    			break;
    			case 324: //lobs
    				c.getFishing().setupFishing(377);
    				c.startAnimation(619);
    			break;
    			case 314: //salmon
    				c.startAnimation(622);
    				c.getFishing().setupFishing(335);
    			break;
    			case 326: //monks
    			c.startAnimation(620);
    			c.getFishing().setupFishing(7944);
    
    
    			
    			
    			break;
    			case 522:
    			case 523:
    				c.getShops().openShop(1);
    			break;
    			case 599:
    				c.getPA().showInterface(3559);
    				c.canChangeAppearance = true;
    			break;
    			case 904:
    				c.sendMessage("You have " + c.magePoints + " points.");
    			break;
    		default:
    			ScriptManager.callFunc("npcClick1_"+npcType, c, npcType);
    			if(c.playerRights == 3) 
    				Misc.println("First Click Npc : "+npcType);
    			break;
    		}
    	}
    
    	public void secondClickNpc(int npcType) {
    		if (c.getStorage().isBoBFamiliar(NPCHandler.npcs[c.npcClickIndex]))
    			c.getStorage().openBoBInterface(NPCHandler.npcs[c.npcClickIndex]);
    		c.clickNpcType = 0;
    		c.npcClickIndex = 0;
    		switch(npcType) {
    			case 324: //tuna
    				c.getFishing().setupFishing(359);
    			c.startAnimation(618);
                               break;
    			case 6873:
    				if (c.getStorage().isBoBFamiliar(NPCHandler.npcs[c.npcClickIndex]))
    					c.getStorage().openBoBInterface(NPCHandler.npcs[c.npcClickIndex]);
    				return;
    			case 1596:
    				c.getShops().openShop(29);
    			break;
    			case 553:
    				c.getShops().openShop(2);
    			break;
    			case 1039:
    				c.getShops().openShop(30);
    			break;
    			case 546:
    				c.getShops().openShop(27);
    			break;
    			case 541:
    				c.getShops().openShop(26);
    			break;
    			case 2824:
    				c.getShops().openShop(25);
    			break;
    			case 570:
    				c.getShops().openShop(24);
    			break;
    			case 587:
    				c.getShops().openShop(22);
    			break;
    			case 534:
    				c.getShops().openShop(21);
    			break;
    			case 2270:
    				c.getShops().openShop(20);
    			break;
    			case 1282:
    				c.getShops().openShop(7);
    			break;
    			
    			case 334: //sharks
    				c.startAnimation(618);
    
    				c.getFishing().setupFishing(383);
    			break;
    			
    			case 3788:
    				c.getShops().openVoid();
    			break;
    			case 494:
    				c.getPA().openUpBank();
    			break;
    			
    			case 904:
    				c.getShops().openShop(17);
    			break;
    			case 522:
    			case 523:
    				c.getShops().openShop(1);
    			break;
    			case 8275://slayer
    			c.getShops().openShop(17);
    			c.sendMessage("You have " + c.magePoints + " points.");
    			break;
    			/*case 461:
    				c.getShops().openShop(2);
    			break;*/
    			
    			case 683:
    				c.getShops().openShop(3);
    			break;
    			
    			case 549:
    				c.getShops().openShop(28);
    			break;
    			
    			case 550:
    				c.getShops().openShop(35);
    			break;
    			
    			case 2538:
    				c.getShops().openShop(6);
    			break;
    			
    			case 519:
    				c.getShops().openShop(8);
    			break;
    			case 3789:
    				c.getShops().openShop(18);
    			break;
    			case 1:
    			case 9:
    			case 18:
    			case 20:
    			case 26:
    			case 21:
    				c.getThieving().stealFromNPC(npcType);
    			break;
    			default:
    				ScriptManager.callFunc("npcClick2_"+npcType, c, npcType);
    				if(c.playerRights == 3) 
    					Misc.println("Second Click Npc : "+npcType);
    				break;
    			
    		}
    	}
    	
    	public void thirdClickNpc(int npcType) {
    		c.clickNpcType = 0;
    		c.npcClickIndex = 0;
    		switch(npcType) {
    
    		case 8275://slayer
    			c.getShops().openShop(17);
    			c.sendMessage("You have " + c.magePoints + " points.");
    			break;
    			
    			case 1596:
    				c.getShops().openShop(29);
    			break;
    			default:
    				ScriptManager.callFunc("npcClick3_"+npcType, c, npcType);
    				if(c.playerRights == 3) 
    					Misc.println("Third Click NPC : "+npcType);
    				break;
    
    		}
    	}
    	
    
    }
    Reply With Quote  
     

  5. #5  
    Registered Member Turm-PK's Avatar
    Join Date
    Oct 2011
    Posts
    221
    Thanks given
    1
    Thanks received
    9
    Rep Power
    34
    Bump...
    Reply With Quote  
     

  6. #6  
    Donator


    Join Date
    Sep 2011
    Posts
    2,730
    Thanks given
    1,150
    Thanks received
    907
    Rep Power
    668
    Code:
    [18/08/12 10:34]: java.lang.NullPointerException
    [18/08/12 10:34]:       at server.model.players.skills.summoning.Storage.isBoBFa
    miliar(Storage.java:60)
    Just look at Storage.java line 60.

    Code:
    player.getStorage().isStoringItems = false;
    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. Replies: 0
    Last Post: 04-24-2012, 03:55 PM
  2. T2 Error When Opening Bank Source PI
    By jackd019 in forum Help
    Replies: 5
    Last Post: 03-01-2012, 08:16 PM
  3. Opening Bank gives T2 Error
    By Deth in forum Help
    Replies: 6
    Last Post: 12-11-2011, 04:56 AM
  4. T2 Error when opening bank
    By fuzz in forum Help
    Replies: 2
    Last Post: 07-28-2011, 11:46 AM
  5. Error opening bank
    By D I M E in forum Help
    Replies: 2
    Last Post: 10-12-2008, 06:55 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
  •