Thread: ItemAssistant? Nullpointer - Banking items?

Results 1 to 5 of 5
  1. #1 ItemAssistant? Nullpointer - Banking items? 
    Registered Member Timo123's Avatar
    Join Date
    Feb 2010
    Posts
    309
    Thanks given
    7
    Thanks received
    3
    Rep Power
    2
    Hello, this error i have been getting for a few days now, what is this?
    Just reply if you need me to post any code.
    Code:
    [5/16/13 12:29 PM]: java.lang.ArrayIndexOutOfBound***ception: -1
    [5/16/13 12:29 PM]:     at server.model.items.ItemAssistant.bankItem(ItemAssista
    nt.java:2936)
    [5/16/13 12:29 PM]:     at server.model.items.ItemAssistant.depositInventory(Ite
    mAssistant.java:3831)
    [5/16/13 12:29 PM]:     at server.model.players.packets.clicking.ClickingButtons
    .processPacket(ClickingButtons.java:753)
    [5/16/13 12:29 PM]:     at server.model.players.PacketHandler.processPacket(Pack
    etHandler.java:157)
    [5/16/13 12:29 PM]:     at server.model.players.Client.processPacket(Client.java
    :2182)
    [5/16/13 12:29 PM]:     at server.model.players.Client$2.add(Client.java:2097)
    [5/16/13 12:29 PM]:     at server.model.players.Client$2.add(Client.java:2093)
    [5/16/13 12:29 PM]:     at server.model.players.Client.queueMessage(Client.java:
    2323)
    [5/16/13 12:29 PM]:     at server.net.ConnectionHandler.messageReceived(Connecti
    onHandler.java:31)
    [5/16/13 12:29 PM]:     at org.apache.mina.common.support.AbstractIoFilterChain$
    TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    [5/16/13 12:29 PM]:     at org.apache.mina.common.support.AbstractIoFilterChain.
    callNextMessageReceived(AbstractIoFilterChain.java:299)
    [5/16/13 12:29 PM]:     at org.apache.mina.common.support.AbstractIoFilterChain.
    access$1100(AbstractIoFilterChain.java:53)
    [5/16/13 12:29 PM]:     at org.apache.mina.common.support.AbstractIoFilterChain$
    EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    [5/16/13 12:29 PM]:     at org.apache.mina.common.IoFilterAdapter.messageReceive
    d(IoFilterAdapter.java:80)
    [5/16/13 12:29 PM]:     at org.apache.mina.common.support.AbstractIoFilterChain.
    callNextMessageReceived(AbstractIoFilterChain.java:299)
    [5/16/13 12:29 PM]:     at org.apache.mina.common.support.AbstractIoFilterChain.
    access$1100(AbstractIoFilterChain.java:53)
    [5/16/13 12:29 PM]:     at org.apache.mina.common.support.AbstractIoFilterChain$
    EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    [5/16/13 12:29 PM]:     at org.apache.mina.filter.executor.ExecutorFilter.proces
    sEvent(ExecutorFilter.java:220)
    [5/16/13 12:29 PM]:     at org.apache.mina.filter.executor.ExecutorFilter$Proces
    sEventsRunnable.run(ExecutorFilter.java:264)
    [5/16/13 12:29 PM]:     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unk
    nown Source)
    [5/16/13 12:29 PM]:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Un
    known Source)
    [5/16/13 12:29 PM]:     at org.apache.mina.util.NamePreservingRunnable.run(NameP
    reservingRunnable.java:51)
    [5/16/13 12:29 PM]:     at java.lang.Thread.run(Unknown Source)
    Reply With Quote  
     

  2. #2  
    Registered Member

    Join Date
    Feb 2010
    Posts
    3,253
    Thanks given
    1,145
    Thanks received
    909
    Rep Power
    2081
    post line 2936 (prefer 2930-2960) in item assistant
    Reply With Quote  
     

  3. #3  
    Registered Member Timo123's Avatar
    Join Date
    Feb 2010
    Posts
    309
    Thanks given
    7
    Thanks received
    3
    Rep Power
    2
    Haha this is funny: its my bankitem method but here you go - Do you have a working method ill use it
    Code:
    public boolean bankItem(int itemID, int fromSlot, int amount){
    		if(c.inTrade) {
    			c.sendMessage("You can't store items while trading!");
    			return false;
    		}
    		if (c.playerItemsN[fromSlot] <= 0){
    			return false;
    		}
    		if (!Item.itemIsNote[c.playerItems[fromSlot]-1]) {
    			if (c.playerItems[fromSlot] <= 0) {
    				return false;
    			}
    			if (Item.itemStackable[c.playerItems[fromSlot]-1] || c.playerItemsN[fromSlot] > 1) {
    				int toBankSlot = 0;
    				boolean alreadyInBank=false;
    			    for (int i=0; i< Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] == c.playerItems[fromSlot]) {
    							if (c.playerItemsN[fromSlot]<amount)
    									amount = c.playerItemsN[fromSlot];
    							alreadyInBank = true;
    							toBankSlot = i;
    							i=Config.BANK_SIZE+1;
    						}
    				}
    
    				if (!alreadyInBank && freeBankSlots() > 0) {
    						for (int i=0; i<Config.BANK_SIZE; i++) {
    							if (c.bankItems[i] <= 0) {
    									toBankSlot = i;
    									i=Config.BANK_SIZE+1;
    							}
    						}
    						c.bankItems[toBankSlot] = c.playerItems[fromSlot];
    						if (c.playerItemsN[fromSlot]<amount){
    							amount = c.playerItemsN[fromSlot];
    						}
    						if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) {
    							c.bankItemsN[toBankSlot] += amount;
    						} else {
    							c.sendMessage("Bank full!");
    							return false;
    						}
    						deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount);
    						resetTempItems();
    						resetBank();
    						return true;
    				}
    				else if (alreadyInBank) {
    						if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) {
    							c.bankItemsN[toBankSlot] += amount;
    						} else {
    							c.sendMessage("Bank full!");
    							return false;
    						}
    						deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount);
    						resetTempItems();
    						resetBank();
    						return true;
    				} else {
    						c.sendMessage("Bank full!");
    						return false;
    				}
    			} else {
    				itemID = c.playerItems[fromSlot];
    				int toBankSlot = 0;
    				boolean alreadyInBank=false;
    			    for (int i=0; i<Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] == c.playerItems[fromSlot]) {
    							alreadyInBank = true;
    							toBankSlot = i;
    							i=Config.BANK_SIZE+1;
    						}
    				}
    				if (!alreadyInBank && freeBankSlots() > 0) {
    			       	for (int i=0; i<Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] <= 0) {
    								toBankSlot = i;
    								i=Config.BANK_SIZE+1;
    						}
    					}
    						int firstPossibleSlot=0;
    						boolean itemExists = false;
    						while (amount > 0) {
    							itemExists = false;
    							for (int i=firstPossibleSlot; i<c.playerItems.length; i++) {
    									if ((c.playerItems[i]) == itemID) {
    										firstPossibleSlot = i;
    										itemExists = true;
    										i=30;
    									}
    							}
    							if (itemExists) {
    									c.bankItems[toBankSlot] = c.playerItems[firstPossibleSlot];
    									c.bankItemsN[toBankSlot] += 1;
    									deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1);
    									amount--;
    							} else {
    									amount=0;
    							}
    						}
    						resetTempItems();
    						resetBank();
    						return true;
    				} else if (alreadyInBank) {
    						int firstPossibleSlot=0;
    						boolean itemExists = false;
    						while (amount > 0) {
    							itemExists = false;
    							for (int i=firstPossibleSlot; i<c.playerItems.length; i++) {
    								if ((c.playerItems[i]) == itemID) {
    									firstPossibleSlot = i;
    									itemExists = true;
    									i=30;
    								}
    							}
    							if (itemExists) {
    									c.bankItemsN[toBankSlot] += 1;
    									deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1);
    									amount--;
    							} else {
    									amount=0;
    							}
    						}
    						resetTempItems();
    						resetBank();
    						return true;
    				} else {
    						c.sendMessage("Bank full!");
    						return false;
    				}
    			}
    		}
    		else if (Item.itemIsNote[c.playerItems[fromSlot]-1] && !Item.itemIsNote[c.playerItems[fromSlot]-2]) {
    			if (c.playerItems[fromSlot] <= 0) {
    				return false;
    			}
    			if (Item.itemStackable[c.playerItems[fromSlot]-1] || c.playerItemsN[fromSlot] > 1) {
    				int toBankSlot = 0;
    				boolean alreadyInBank=false;
    			    for (int i=0; i<Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] == (c.playerItems[fromSlot]-1)) {
    							if (c.playerItemsN[fromSlot]<amount)
    									amount = c.playerItemsN[fromSlot];
    						alreadyInBank = true;
    						toBankSlot = i;
    						i=Config.BANK_SIZE+1;
    						}
    				}
    
    				if (!alreadyInBank && freeBankSlots() > 0) {
    			       	for (int i=0; i<Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] <= 0) {
    								toBankSlot = i;
    								i=Config.BANK_SIZE+1;
    						}
    					}
    					c.bankItems[toBankSlot] = (c.playerItems[fromSlot]-1);
    					if (c.playerItemsN[fromSlot]<amount){
    						amount = c.playerItemsN[fromSlot];
    					}
    					if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) {
    						c.bankItemsN[toBankSlot] += amount;
    					} else {
    						return false;
    					}
    					deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount);
    					resetTempItems();
    					resetBank();
    					return true;
    				}
    				else if (alreadyInBank) {
    					if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) {
    						c.bankItemsN[toBankSlot] += amount;
    					} else {
    						return false;
    					}
    					deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount);
    					resetTempItems();
    					resetBank();
    					return true;
    				} else {
    						c.sendMessage("Bank full!");
    						return false;
    				}
    			} else {
    				itemID = c.playerItems[fromSlot];
    				int toBankSlot = 0;
    				boolean alreadyInBank=false;
    			    for (int i=0; i<Config.BANK_SIZE; i++) {
    					if (c.bankItems[i] == (c.playerItems[fromSlot]-1)) {
    						alreadyInBank = true;
    						toBankSlot = i;
    						i=Config.BANK_SIZE+1;
    					}
    				}
    				if (!alreadyInBank && freeBankSlots() > 0) {
    			       	for (int i=0; i<Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] <= 0){
    								toBankSlot = i;
    								i=Config.BANK_SIZE+1;
    						}
    					}
    						int firstPossibleSlot=0;
    						boolean itemExists = false;
    						while (amount > 0) {
    							itemExists = false;
    							for (int i=firstPossibleSlot; i<c.playerItems.length; i++) {
    								if ((c.playerItems[i]) == itemID) {
    									firstPossibleSlot = i;
    									itemExists = true;
    									i=30;
    								}
    							}
    							if (itemExists) {
    									c.bankItems[toBankSlot] = (c.playerItems[firstPossibleSlot]-1);
    									c.bankItemsN[toBankSlot] += 1;
    									deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1);
    									amount--;
    							} else {
    									amount=0;
    							}
    						}
    						resetTempItems();
    						resetBank();
    						return true;
    				}
    				else if (alreadyInBank) {
    						int firstPossibleSlot=0;
    						boolean itemExists = false;
    						while (amount > 0) {
    							itemExists = false;
    							for (int i=firstPossibleSlot; i<c.playerItems.length; i++) {
    								if ((c.playerItems[i]) == itemID) {
    									firstPossibleSlot = i;
    									itemExists = true;
    									i=30;
    								}
    							}
    							if (itemExists) {
    									c.bankItemsN[toBankSlot] += 1;
    									deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1);
    									amount--;
    							} else {
    									amount=0;
    							}
    						}
    						resetTempItems();
    						resetBank();
    						return true;
    				} else {
    						c.sendMessage("Bank full!");
    						return false;
    				}
    			}
    		} else {
    			c.sendMessage("Item not supported "+(c.playerItems[fromSlot]-1));
    			return false;
    		}
    	}
    Reply With Quote  
     

  4. #4  
    Registered Member
    Karma_K's Avatar
    Join Date
    Nov 2012
    Posts
    4,283
    Thanks given
    152
    Thanks received
    610
    Rep Power
    108
    Quote Originally Posted by Timo123 View Post
    Haha this is funny: its my bankitem method but here you go - Do you have a working method ill use it
    Code:
    public boolean bankItem(int itemID, int fromSlot, int amount){
    		if(c.inTrade) {
    			c.sendMessage("You can't store items while trading!");
    			return false;
    		}
    		if (c.playerItemsN[fromSlot] <= 0){
    			return false;
    		}
    		if (!Item.itemIsNote[c.playerItems[fromSlot]-1]) {
    			if (c.playerItems[fromSlot] <= 0) {
    				return false;
    			}
    			if (Item.itemStackable[c.playerItems[fromSlot]-1] || c.playerItemsN[fromSlot] > 1) {
    				int toBankSlot = 0;
    				boolean alreadyInBank=false;
    			    for (int i=0; i< Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] == c.playerItems[fromSlot]) {
    							if (c.playerItemsN[fromSlot]<amount)
    									amount = c.playerItemsN[fromSlot];
    							alreadyInBank = true;
    							toBankSlot = i;
    							i=Config.BANK_SIZE+1;
    						}
    				}
    
    				if (!alreadyInBank && freeBankSlots() > 0) {
    						for (int i=0; i<Config.BANK_SIZE; i++) {
    							if (c.bankItems[i] <= 0) {
    									toBankSlot = i;
    									i=Config.BANK_SIZE+1;
    							}
    						}
    						c.bankItems[toBankSlot] = c.playerItems[fromSlot];
    						if (c.playerItemsN[fromSlot]<amount){
    							amount = c.playerItemsN[fromSlot];
    						}
    						if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) {
    							c.bankItemsN[toBankSlot] += amount;
    						} else {
    							c.sendMessage("Bank full!");
    							return false;
    						}
    						deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount);
    						resetTempItems();
    						resetBank();
    						return true;
    				}
    				else if (alreadyInBank) {
    						if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) {
    							c.bankItemsN[toBankSlot] += amount;
    						} else {
    							c.sendMessage("Bank full!");
    							return false;
    						}
    						deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount);
    						resetTempItems();
    						resetBank();
    						return true;
    				} else {
    						c.sendMessage("Bank full!");
    						return false;
    				}
    			} else {
    				itemID = c.playerItems[fromSlot];
    				int toBankSlot = 0;
    				boolean alreadyInBank=false;
    			    for (int i=0; i<Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] == c.playerItems[fromSlot]) {
    							alreadyInBank = true;
    							toBankSlot = i;
    							i=Config.BANK_SIZE+1;
    						}
    				}
    				if (!alreadyInBank && freeBankSlots() > 0) {
    			       	for (int i=0; i<Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] <= 0) {
    								toBankSlot = i;
    								i=Config.BANK_SIZE+1;
    						}
    					}
    						int firstPossibleSlot=0;
    						boolean itemExists = false;
    						while (amount > 0) {
    							itemExists = false;
    							for (int i=firstPossibleSlot; i<c.playerItems.length; i++) {
    									if ((c.playerItems[i]) == itemID) {
    										firstPossibleSlot = i;
    										itemExists = true;
    										i=30;
    									}
    							}
    							if (itemExists) {
    									c.bankItems[toBankSlot] = c.playerItems[firstPossibleSlot];
    									c.bankItemsN[toBankSlot] += 1;
    									deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1);
    									amount--;
    							} else {
    									amount=0;
    							}
    						}
    						resetTempItems();
    						resetBank();
    						return true;
    				} else if (alreadyInBank) {
    						int firstPossibleSlot=0;
    						boolean itemExists = false;
    						while (amount > 0) {
    							itemExists = false;
    							for (int i=firstPossibleSlot; i<c.playerItems.length; i++) {
    								if ((c.playerItems[i]) == itemID) {
    									firstPossibleSlot = i;
    									itemExists = true;
    									i=30;
    								}
    							}
    							if (itemExists) {
    									c.bankItemsN[toBankSlot] += 1;
    									deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1);
    									amount--;
    							} else {
    									amount=0;
    							}
    						}
    						resetTempItems();
    						resetBank();
    						return true;
    				} else {
    						c.sendMessage("Bank full!");
    						return false;
    				}
    			}
    		}
    		else if (Item.itemIsNote[c.playerItems[fromSlot]-1] && !Item.itemIsNote[c.playerItems[fromSlot]-2]) {
    			if (c.playerItems[fromSlot] <= 0) {
    				return false;
    			}
    			if (Item.itemStackable[c.playerItems[fromSlot]-1] || c.playerItemsN[fromSlot] > 1) {
    				int toBankSlot = 0;
    				boolean alreadyInBank=false;
    			    for (int i=0; i<Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] == (c.playerItems[fromSlot]-1)) {
    							if (c.playerItemsN[fromSlot]<amount)
    									amount = c.playerItemsN[fromSlot];
    						alreadyInBank = true;
    						toBankSlot = i;
    						i=Config.BANK_SIZE+1;
    						}
    				}
    
    				if (!alreadyInBank && freeBankSlots() > 0) {
    			       	for (int i=0; i<Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] <= 0) {
    								toBankSlot = i;
    								i=Config.BANK_SIZE+1;
    						}
    					}
    					c.bankItems[toBankSlot] = (c.playerItems[fromSlot]-1);
    					if (c.playerItemsN[fromSlot]<amount){
    						amount = c.playerItemsN[fromSlot];
    					}
    					if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) {
    						c.bankItemsN[toBankSlot] += amount;
    					} else {
    						return false;
    					}
    					deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount);
    					resetTempItems();
    					resetBank();
    					return true;
    				}
    				else if (alreadyInBank) {
    					if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) {
    						c.bankItemsN[toBankSlot] += amount;
    					} else {
    						return false;
    					}
    					deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount);
    					resetTempItems();
    					resetBank();
    					return true;
    				} else {
    						c.sendMessage("Bank full!");
    						return false;
    				}
    			} else {
    				itemID = c.playerItems[fromSlot];
    				int toBankSlot = 0;
    				boolean alreadyInBank=false;
    			    for (int i=0; i<Config.BANK_SIZE; i++) {
    					if (c.bankItems[i] == (c.playerItems[fromSlot]-1)) {
    						alreadyInBank = true;
    						toBankSlot = i;
    						i=Config.BANK_SIZE+1;
    					}
    				}
    				if (!alreadyInBank && freeBankSlots() > 0) {
    			       	for (int i=0; i<Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] <= 0){
    								toBankSlot = i;
    								i=Config.BANK_SIZE+1;
    						}
    					}
    						int firstPossibleSlot=0;
    						boolean itemExists = false;
    						while (amount > 0) {
    							itemExists = false;
    							for (int i=firstPossibleSlot; i<c.playerItems.length; i++) {
    								if ((c.playerItems[i]) == itemID) {
    									firstPossibleSlot = i;
    									itemExists = true;
    									i=30;
    								}
    							}
    							if (itemExists) {
    									c.bankItems[toBankSlot] = (c.playerItems[firstPossibleSlot]-1);
    									c.bankItemsN[toBankSlot] += 1;
    									deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1);
    									amount--;
    							} else {
    									amount=0;
    							}
    						}
    						resetTempItems();
    						resetBank();
    						return true;
    				}
    				else if (alreadyInBank) {
    						int firstPossibleSlot=0;
    						boolean itemExists = false;
    						while (amount > 0) {
    							itemExists = false;
    							for (int i=firstPossibleSlot; i<c.playerItems.length; i++) {
    								if ((c.playerItems[i]) == itemID) {
    									firstPossibleSlot = i;
    									itemExists = true;
    									i=30;
    								}
    							}
    							if (itemExists) {
    									c.bankItemsN[toBankSlot] += 1;
    									deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1);
    									amount--;
    							} else {
    									amount=0;
    							}
    						}
    						resetTempItems();
    						resetBank();
    						return true;
    				} else {
    						c.sendMessage("Bank full!");
    						return false;
    				}
    			}
    		} else {
    			c.sendMessage("Item not supported "+(c.playerItems[fromSlot]-1));
    			return false;
    		}
    	}
    this is mine?

    Code:
    	public boolean bankItem(int itemID, int fromSlot, int amount) {
    		// Misc.println("its being used...");
    		if (c.playerItemsN[fromSlot] <= 0) {
    			return false;
    		}
    		if (!Item.itemIsNote[c.playerItems[fromSlot] - 1]) {
    			if (c.playerItems[fromSlot] <= 0) {
    				return false;
    			}
    			if (Item.itemStackable[c.playerItems[fromSlot] - 1]
    					|| c.playerItemsN[fromSlot] > 1) {
    				int toBankSlot = 0;
    				boolean alreadyInBank = false;
    				for (int i = 0; i < Config.BANK_SIZE; i++) {
    					if (c.bankItems[i] == c.playerItems[fromSlot]) {
    						if (c.playerItemsN[fromSlot] < amount)
    							amount = c.playerItemsN[fromSlot];
    						alreadyInBank = true;
    						toBankSlot = i;
    						i = Config.BANK_SIZE + 1;
    					}
    				}
    
    				if (!alreadyInBank && freeBankSlots() > 0) {
    					for (int i = 0; i < Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] <= 0) {
    							toBankSlot = i;
    							i = Config.BANK_SIZE + 1;
    						}
    					}
    					c.bankItems[toBankSlot] = c.playerItems[fromSlot];
    					if (c.playerItemsN[fromSlot] < amount) {
    						amount = c.playerItemsN[fromSlot];
    					}
    					if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT
    							&& (c.bankItemsN[toBankSlot] + amount) > -1) {
    						c.bankItemsN[toBankSlot] += amount;
    					} else {
    						c.sendMessage("Bank full!");
    						return false;
    					}
    					deleteItem((c.playerItems[fromSlot] - 1), fromSlot, amount);
    					resetTempItems();
    					resetBank();
    					return true;
    				} else if (alreadyInBank) {
    					if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT
    							&& (c.bankItemsN[toBankSlot] + amount) > -1) {
    						c.bankItemsN[toBankSlot] += amount;
    					} else {
    						c.sendMessage("Bank full!");
    						return false;
    					}
    					deleteItem((c.playerItems[fromSlot] - 1), fromSlot, amount);
    					resetTempItems();
    					resetBank();
    					return true;
    				} else {
    					c.sendMessage("Bank full!");
    					return false;
    				}
    			} else {
    				itemID = c.playerItems[fromSlot];
    				int toBankSlot = 0;
    				boolean alreadyInBank = false;
    				for (int i = 0; i < Config.BANK_SIZE; i++) {
    					if (c.bankItems[i] == c.playerItems[fromSlot]) {
    						alreadyInBank = true;
    						toBankSlot = i;
    						i = Config.BANK_SIZE + 1;
    					}
    				}
    				if (!alreadyInBank && freeBankSlots() > 0) {
    					for (int i = 0; i < Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] <= 0) {
    							toBankSlot = i;
    							i = Config.BANK_SIZE + 1;
    						}
    					}
    					int firstPossibleSlot = 0;
    					boolean itemExists = false;
    					while (amount > 0) {
    						itemExists = false;
    						for (int i = firstPossibleSlot; i < c.playerItems.length; i++) {
    							if ((c.playerItems[i]) == itemID) {
    								firstPossibleSlot = i;
    								itemExists = true;
    								i = 30;
    							}
    						}
    						if (itemExists) {
    							c.bankItems[toBankSlot] = c.playerItems[firstPossibleSlot];
    							c.bankItemsN[toBankSlot] += 1;
    							deleteItem((c.playerItems[firstPossibleSlot] - 1),
    									firstPossibleSlot, 1);
    							amount--;
    						} else {
    							amount = 0;
    						}
    					}
    					resetTempItems();
    					resetBank();
    					return true;
    				} else if (alreadyInBank) {
    					int firstPossibleSlot = 0;
    					boolean itemExists = false;
    					while (amount > 0) {
    						itemExists = false;
    						for (int i = firstPossibleSlot; i < c.playerItems.length; i++) {
    							if ((c.playerItems[i]) == itemID) {
    								firstPossibleSlot = i;
    								itemExists = true;
    								i = 30;
    							}
    						}
    						if (itemExists) {
    							c.bankItemsN[toBankSlot] += 1;
    							deleteItem((c.playerItems[firstPossibleSlot] - 1),
    									firstPossibleSlot, 1);
    							amount--;
    						} else {
    							amount = 0;
    						}
    					}
    					resetTempItems();
    					resetBank();
    					return true;
    				} else {
    					c.sendMessage("Bank full!");
    					return false;
    				}
    			}
    		} else if (Item.itemIsNote[c.playerItems[fromSlot] - 1]
    				&& !Item.itemIsNote[c.playerItems[fromSlot] - 2]) {
    			if (c.playerItems[fromSlot] <= 0) {
    				return false;
    			}
    			if (Item.itemStackable[c.playerItems[fromSlot] - 1]
    					|| c.playerItemsN[fromSlot] > 1) {
    				int toBankSlot = 0;
    				boolean alreadyInBank = false;
    				for (int i = 0; i < Config.BANK_SIZE; i++) {
    					if (c.bankItems[i] == (c.playerItems[fromSlot] - 1)) {
    						if (c.playerItemsN[fromSlot] < amount)
    							amount = c.playerItemsN[fromSlot];
    						alreadyInBank = true;
    						toBankSlot = i;
    						i = Config.BANK_SIZE + 1;
    					}
    				}
    
    				if (!alreadyInBank && freeBankSlots() > 0) {
    					for (int i = 0; i < Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] <= 0) {
    							toBankSlot = i;
    							i = Config.BANK_SIZE + 1;
    						}
    					}
    					c.bankItems[toBankSlot] = (c.playerItems[fromSlot] - 1);
    					if (c.playerItemsN[fromSlot] < amount) {
    						amount = c.playerItemsN[fromSlot];
    					}
    					if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT
    							&& (c.bankItemsN[toBankSlot] + amount) > -1) {
    						c.bankItemsN[toBankSlot] += amount;
    					} else {
    						return false;
    					}
    					deleteItem((c.playerItems[fromSlot] - 1), fromSlot, amount);
    					resetTempItems();
    					resetBank();
    					return true;
    				} else if (alreadyInBank) {
    					if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT
    							&& (c.bankItemsN[toBankSlot] + amount) > -1) {
    						c.bankItemsN[toBankSlot] += amount;
    					} else {
    						return false;
    					}
    					deleteItem((c.playerItems[fromSlot] - 1), fromSlot, amount);
    					resetTempItems();
    					resetBank();
    					return true;
    				} else {
    					c.sendMessage("Bank full!");
    					return false;
    				}
    			} else {
    				itemID = c.playerItems[fromSlot];
    				int toBankSlot = 0;
    				boolean alreadyInBank = false;
    				for (int i = 0; i < Config.BANK_SIZE; i++) {
    					if (c.bankItems[i] == (c.playerItems[fromSlot] - 1)) {
    						alreadyInBank = true;
    						toBankSlot = i;
    						i = Config.BANK_SIZE + 1;
    					}
    				}
    				if (!alreadyInBank && freeBankSlots() > 0) {
    					for (int i = 0; i < Config.BANK_SIZE; i++) {
    						if (c.bankItems[i] <= 0) {
    							toBankSlot = i;
    							i = Config.BANK_SIZE + 1;
    						}
    					}
    					int firstPossibleSlot = 0;
    					boolean itemExists = false;
    					while (amount > 0) {
    						itemExists = false;
    						for (int i = firstPossibleSlot; i < c.playerItems.length; i++) {
    							if ((c.playerItems[i]) == itemID) {
    								firstPossibleSlot = i;
    								itemExists = true;
    								i = 30;
    							}
    						}
    						if (itemExists) {
    							c.bankItems[toBankSlot] = (c.playerItems[firstPossibleSlot] - 1);
    							c.bankItemsN[toBankSlot] += 1;
    							deleteItem((c.playerItems[firstPossibleSlot] - 1),
    									firstPossibleSlot, 1);
    							amount--;
    						} else {
    							amount = 0;
    						}
    					}
    					resetTempItems();
    					resetBank();
    					return true;
    				} else if (alreadyInBank) {
    					int firstPossibleSlot = 0;
    					boolean itemExists = false;
    					while (amount > 0) {
    						itemExists = false;
    						for (int i = firstPossibleSlot; i < c.playerItems.length; i++) {
    							if ((c.playerItems[i]) == itemID) {
    								firstPossibleSlot = i;
    								itemExists = true;
    								i = 30;
    							}
    						}
    						if (itemExists) {
    							c.bankItemsN[toBankSlot] += 1;
    							deleteItem((c.playerItems[firstPossibleSlot] - 1),
    									firstPossibleSlot, 1);
    							amount--;
    						} else {
    							amount = 0;
    						}
    					}
    					resetTempItems();
    					resetBank();
    					return true;
    				} else {
    					c.sendMessage("Bank full!");
    					return false;
    				}
    			}
    		} else {
    			c.sendMessage("Item not supported " + (c.playerItems[fromSlot] - 1));
    			return false;
    		}
    	}
    Reply With Quote  
     

  5. Thankful user:


  6. #5  
    Registered Member Timo123's Avatar
    Join Date
    Feb 2010
    Posts
    309
    Thanks given
    7
    Thanks received
    3
    Rep Power
    2
    Thanks karma no nullpointers so far!
    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. How To Fix Bank Items Staying Noted [DELTA]
    By digistr in forum Tutorials
    Replies: 9
    Last Post: 07-10-2009, 06:32 AM
  2. Bank Item Messed Up? Help?
    By digistr in forum Help
    Replies: 6
    Last Post: 04-10-2009, 10:30 PM
  3. Bank items dissapearing.
    By Runebay™ in forum Help
    Replies: 0
    Last Post: 03-04-2009, 06:46 AM
  4. Cannot bank items in fullscreen
    By Hackur in forum Help
    Replies: 12
    Last Post: 01-19-2009, 04:28 AM
  5. Stopping bank items from disappearing
    By ¤~W.I.L.L~¤ in forum Configuration
    Replies: 39
    Last Post: 12-23-2008, 12:00 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
  •