Thread: Shop help

Results 1 to 4 of 4
  1. #1 Shop help 
    Banned
    Join Date
    May 2011
    Posts
    205
    Thanks given
    39
    Thanks received
    3
    Rep Power
    0
    I recently added prestige to my server and the shop gives away free items ive tried to fix it but it wont work im going to include my shopassistant.java below if you can fix i can rep

    Code:
    [SPOIL]package server.model.shops;
    
    import server.Config;
    import server.Server;
    import server.model.items.Item;
    import server.model.players.Client;
    import server.model.players.PlayerHandler;
    import server.world.ShopHandler;
    
    public class ShopAssistant {
    
    	private Client c;
    
    	public ShopAssistant(Client client) {
    		this.c = client;
    	}
    
    	/**
    	 * Shops
    	 **/
    
    	public void openShop(int ShopID) {
    		c.getItems().resetItems(3823);
    		resetShop(ShopID);
    		c.isShopping = true;
    		c.myShopId = ShopID;
    		c.getPA().sendFrame248(3824, 3822);
    		c.getPA().sendFrame126(ShopHandler.ShopName[ShopID], 3901);
    	}
    
    	//
    
    	public boolean shopSellsItem(int itemID) {
    		for (int i = 0; i < ShopHandler.ShopItems.length; i++) {
    			if (itemID == (ShopHandler.ShopItems[c.myShopId][i] - 1)) {
    				return true;
    			}
    		}
    		return false;
    	}
    
    	public void updatePlayerShop() {
    		for (int i = 1; i < Config.MAX_PLAYERS; i++) {
    			if (PlayerHandler.players[i] != null) {
    				if (PlayerHandler.players[i].isShopping == true
    						&& PlayerHandler.players[i].myShopId == c.myShopId
    						&& i != c.playerId) {
    					PlayerHandler.players[i].updateShop = true;
    				}
    			}
    		}
    	}
    
    	public void updateshop(int i) {
    		resetShop(i);
    	}
    
    	public void resetShop(int ShopID) {
    		synchronized (c) {
    			int TotalItems = 0;
    			for (int i = 0; i < ShopHandler.MaxShopItems; i++) {
    				if (ShopHandler.ShopItems[ShopID][i] > 0) {
    					TotalItems++;
    				}
    			}
    			if (TotalItems > ShopHandler.MaxShopItems) {
    				TotalItems = ShopHandler.MaxShopItems;
    			}
    			c.getOutStream().createFrameVarSizeWord(53);
    			c.getOutStream().writeWord(3900);
    			c.getOutStream().writeWord(TotalItems);
    			int TotalCount = 0;
    			for (int i = 0; i < ShopHandler.ShopItems.length; i++) {
    				if (ShopHandler.ShopItems[ShopID][i] > 0
    						|| i <= ShopHandler.ShopItemsStandard[ShopID]) {
    					if (ShopHandler.ShopItemsN[ShopID][i] > 254) {
    						c.getOutStream().writeByte(255);
    						c.getOutStream().writeDWord_v2(
    								ShopHandler.ShopItemsN[ShopID][i]);
    					} else {
    						c.getOutStream().writeByte(
    								ShopHandler.ShopItemsN[ShopID][i]);
    					}
    					if (ShopHandler.ShopItems[ShopID][i] > Config.ITEM_LIMIT
    							|| ShopHandler.ShopItems[ShopID][i] < 0) {
    						ShopHandler.ShopItems[ShopID][i] = Config.ITEM_LIMIT;
    					}
    					c.getOutStream().writeWordBigEndianA(
    							ShopHandler.ShopItems[ShopID][i]);
    					TotalCount++;
    				}
    				if (TotalCount > TotalItems) {
    					break;
    				}
    			}
    			c.getOutStream().endFrameVarSizeWord();
    			c.flushOutStream();
    		}
    	}
    
    	public double getItemShopValue(int ItemID, int Type, int fromSlot) {
    		double ShopValue = 1;
    		double Overstock = 0;
    		double TotPrice = 0;
    		for (int i = 0; i < Config.ITEM_LIMIT; i++) {
    			if (Server.itemHandler.ItemList[i] != null) {
    				if (Server.itemHandler.ItemList[i].itemId == ItemID) {
    					ShopValue = Server.itemHandler.ItemList[i].ShopValue;
    				}
    			}
    		}
    
    		TotPrice = ShopValue;
    
    		if (ShopHandler.ShopBModifier[c.myShopId] == 1) {
    			TotPrice *= 1;
    			TotPrice *= 1;
    			if (Type == 1) {
    				TotPrice *= 1;
    			}
    		} else if (Type == 1) {
    			TotPrice *= 1;
    		}
    		return TotPrice;
    	}
    
    	public int getItemShopValue(int itemId) {
    		for (int i = 0; i < Config.ITEM_LIMIT; i++) {
    			if (Server.itemHandler.ItemList[i] != null) {
    				if (Server.itemHandler.ItemList[i].itemId == itemId) {
    					return (int) Server.itemHandler.ItemList[i].ShopValue;
    				}
    			}
    		}
    		return 0;
    	}
    
    	/**
    	 * buy item from shop (Shop Price)
    	 **/
    
    	public void buyFromShopPrice(int removeId, int removeSlot) {
    		int ShopValue = (int) Math.floor(getItemShopValue(removeId, 0,
    				removeSlot));
    		ShopValue *= 1;
    		String ShopAdd = "";
    		if (c.myShopId > 19 && c.myShopId < 30){
    			c.sendMessage("This item current costs " + getPrestigeItemValue(removeId) + " Prestige Points.");
    			return;		
    		}
    		
    		if (c.myShopId == 47) {
    			c.sendMessage(c.getItems().getItemName(removeId)
    					+ ": currently costs " + getSpecialItemValue(removeId)
    					+ " PK points");
    			return;
    		}
    		if (c.myShopId == 52) {
    			c.sendMessage(c.getItems().getItemName(removeId)
    					+ ": currently costs " + getSpecialItemValue(removeId)
    					+ " Mage Arena Points");
    			return;
    		}
    		if (c.myShopId == 18) {
    			c.sendMessage(c.getItems().getItemName(removeId)
    					+ ": currently costs " + getSpecialItemValue(removeId)
    					+ " Lost-Rune points.");
    			return;
    		}
    		if (c.myShopId == 21) {
    			c.sendMessage(c.getItems().getItemName(removeId)
    					+ ": currently costs " + getSpecialItemValue(removeId)
    					+ " Agility Points.");
    			return;
    		}
    		if (c.myShopId == 10) {
    			c.sendMessage(c.getItems().getItemName(removeId)
    					+ ": currently costs " + getSpecialItemValue(removeId)
    					+ " Voteing Points.");
    			return;
    		}
    		if (c.myShopId == 17) {
    			c.sendMessage(c.getItems().getItemName(removeId)
    					+ ": currently costs " + getSpecialItemValue(removeId)
    					+ " mage Points.");
    			return;
    		}
    		if (c.myShopId == 15) {
    			c.sendMessage("This item current costs "
    					+ c.getItems().getUntradePrice(removeId) + " coins.");
    			return;
    		}
    		if (ShopValue >= 1000 && ShopValue < 1000000) {
    			ShopAdd = " (" + (ShopValue / 1000) + "K)";
    		} else if (ShopValue >= 1000000) {
    			ShopAdd = " (" + (ShopValue / 1000000) + " million)";
    		}
    		c.sendMessage(c.getItems().getItemName(removeId) + ": currently costs "
    				+ ShopValue + " coins" + ShopAdd);
    	}
    public int getPrestigeItemValue(int id) {
    		switch (id) {
    			case 11694:
    			return 4200;
    			case 11696:
    			case 11698:
    			case 11700:
    			return 2600;
    			
    			case 11938:
    			return 1000;
    			
    			case 18778:
    			return 600;
    			
    			case 19311:
    			return 1100;
    			
    			case 19335:
    			case 20072:
    			return 900;
    			
    			case 9470:
    			case 9472:
    			return 400;
    			
    			case 13362:
    			case 13358:
    			case 13360:
    			return 3000;
    			
    			case 11858:
    			case 11860:
    			case 11862:
    			return 6000;
    			
    			
    			case 11846:
    			case 11848:
    			case 11850:
    			case 11852:
    			case 11854:
    			case 11856:
    			return 700;
    			
    			case 5698:
    			case 5699:
    			return 100;
    			
    			case 14484:
    			return 4200;
    			
    			
    			case 4151:
    			return 500;
    			
    			case 2441:
    			case 2435:
    			case 2429:
    			return 25;
    			
    			case 19336:
    			case 19337:
    			case 19338:
    			case 19339:
    			case 19340:
    			return 500;
    			
    			case 6731:
    			case 6733:
    			case 6735:
    			case 6737:
    			return 350;
    			
    		}
    		return 0;
    	}
    	public int getSpecialItemValue(int id) {
    		switch (id) {
    		case 14012:
    		return 1200;
    		case 1038:
    		case 1040:
    		case 1042:
    		case 1044:
    		case 1046:
    		case 1048:
    		case 1050:
    		return 500;
    		case 10330:
    		case 10332:
    		case 10334:
    		case 10346:
    		case 10348:
    		case 10350:
    		case 10352:
    		return 100;
    		case 19336:
    		return 350;
    		case 19337:
    		case 19338:
    		case 19340:
    		return 250;
    		case 14484:
    		return 100;
    		case 11283:
    		return 50;
    		case 19669:
    		return 900;
    		case 1767:
    		case 1765:
    		case 1771:
    		case 5559:
    			return 30;
    		case 15486:
    			return 500;
    		case 6889:
    			return 45;
    		case 6916:
    		case 6918:
    		case 6920:
    		case 6922:
    		case 6924:
    			return 40;
    		case 11663:
    		case 11664:
    		case 11665:
    		case 8842:
    			return 40;
    		case 17020:
    			return 70;
    		case 17004:
    		case 17003:
    		case 17005:
    		case 17002:
    			return 50;
    			case 7462:
    			return 100;
    		case 10342:
    			return 100;
    		case 10338:
    			return 100;
    		case 10340:
    			return 100;
    		case 15308:
    		case 15312:
    		case 15316:
    		case 15320:
    		case 15324:
    			return 4;
    		case 8839:
    		case 8840:
    			return 95;
    		case 10499:
    			return 30;
    		case 13887:
    		case 13893:
    			return 680;
    		case 18017:
    		case 18018:
    		case 18019:
    		case 18020:
    			return 3;
    		case 14508:
    			return 250;
    		case 8845:
    			return 10;
    		case 8846:
    			return 10;
    		case 8847:
    			return 15;
    		case 8848:
    			return 20;
    		case 8849:
    		case 8850:
    			return 25;
    		case 10551:
    			return 50;
    		case 6570:
    			return 50;
    		case 10887:
    			return 250;
    		case 11851:
    		case 12210:
    		case 12213:
    		case 12216:
    		case 12219:
    		case 12222:
    			return 100;
    		case 11730:
    			return 180;
    		case 11700:
    			return 290;
    		case 11698:
    			return 399;
    		case 11696:
    			return 399;
    		case 11694:
    			return 600;
    		case 15126:
    		case 18335:
    			return 400;
    		case 6585:
    			return 25;
    		case 16713:
    			return 400;
    		case 15017:
    		case 15018:
    			return 850;
    		case 15055:
    			return 5;
    		case 15031:
    			return 600;
    		case 15007:
    		case 15006:
    			return 700;
    		case 15005:
    		case 15004:
    			return 850;
    		case 15003:
    		case 15002:
    		case 15001:
    		case 15000:
    			return 300;
    		case 16689:
    			return 1000;
    		case 17259:
    			return 1000;
    		case 17361:
    			return 1000;
    		case 16711:
    			return 900;
    		case 11821:
    			return 1000;
    		case 11822:
    			return 1000;
    		case 11820:
    			return 800;
    		case 15022:
    		case 15026:
    			return 750;
    		case 15021:
    		case 15023:
    			return 850;
    		case 13350:
    			return 2200;
    		case 15332:
    			return 7;
    		case 15220:
    			return 150;
    		case 15019:
    			return 150;
    		case 13351:
    			return 2200;
    		case 15025:
    			return 230;
    		case 15024:
    			return 170;
    		case 15043:
    		case 15042:
    			return 790;
    		case 15041:
    		case 15040:
    			return 650;
    		case 15051:
    			return 500;
    		case 15050:
    			return 700;
    		case 18355:
    			return 1000;
    		case 19785:
    			return 160;
    		case 19786:
    			return 140;
    		case 13858:
    		case 13861:
    			return 500;
    		case 1555:
    		case 7584:
    		case 1556:
    		case 1557:
    		case 1558:
    			return 150;
    		case 13738:
    		case 13742:
    		case 13744:
    		case 13740:
    			return 500;
    		case 18351:
    		case 18353:
    		case 18349:
    			return 600;
    		case 13890:
    		case 13884:
    			return 550;
    		case 13899:
    			return 600;
    		case 13896:
    			return 500;
    		case 13902:
    			return 550;
    		case 15505:
    			return 45;
    		case 15507:
    			return 45;
    		case 15509:
    		case 15511:
    			return 35;
    		case 15073:
    			return 55;
    		case 15074:
    			return 55;
    		case 17025:
    			return 35;
    		case 17018:
    			return 90;
    		case 17019:
    			return 80;
    		case 15054:
    			return 200;
    		case 14936:
    			return 300;
    		case 14938:
    			return 250;
    		case 15090:
    		case 15091:
    		case 15092:
    		case 15093:
    		case 15094:
    		case 15095:
    		case 15096:
    		case 15097:
    		case 15098:
    			return 350;
    		case 15085:
    			return 1300;
    		case 15081:
    			return 1150;
    		case 15080:
    			return 1150;
    		case 15083:
    			return 600;
    		case 13352:
    		case 13353:
    		case 13354:
    			return 700;
    		case 16222:
    			return 1100;
    		case 14497:
    		case 14501:
    			return 150;
    		case 14499:
    			return 60;
    		case 15060:
    		case 15062:
    			return 150;
    		case 15061:
    			return 70;
    		case 15020:
    			return 700;
    		case 2577:
    		case 2581:
    			return 40;
    		case 6914:
    		case 6890:
    			return 45;
    
    		}
    		return 0;
    	}
    
    	/**
    	 * Sell item to shop (Shop Price)
    	 **/
    	public void sellToShopPrice(int removeId, int removeSlot) {
    		for (int i : Config.ITEM_SELLABLE) {
    
    			if (i == removeId) {
    				c.sendMessage("You can't sell "
    						+ c.getItems().getItemName(removeId).toLowerCase()
    						+ ".");
    				return;
    			}
    
    		}
    		boolean IsIn = false;
    		if (ShopHandler.ShopSModifier[c.myShopId] > 1) {
    			for (int j = 0; j <= ShopHandler.ShopItemsStandard[c.myShopId]; j++) {
    				if (removeId == (ShopHandler.ShopItems[c.myShopId][j] - 1)) {
    					IsIn = true;
    					break;
    				}
    			}
    		} else {
    			IsIn = true;
    		}
    		if (IsIn == false) {
    			c.sendMessage("You can't sell "
    					+ c.getItems().getItemName(removeId).toLowerCase()
    					+ " to this store.");
    		} else {
    			int ShopValue = (int) Math.floor(getItemShopValue(removeId, 1,
    					removeSlot));
    			String ShopAdd = "";
    			if (ShopValue >= 1000 && ShopValue < 1000000) {
    				ShopAdd = " (" + (ShopValue / 1000) + "K)";
    			} else if (ShopValue >= 1000000) {
    				ShopAdd = " (" + (ShopValue / 1000000) + " million)";
    			}
    			c.sendMessage(c.getItems().getItemName(removeId)
    					+ ": shop will buy for " + ShopValue + " coins" + ShopAdd);
    		}
    	}
    
    	public boolean sellItem(int itemID, int fromSlot, int amount) {
    		if (c.inTrade) {
    			c.sendMessage("You cant sell items to the shop while your in trade!");
    			return false;
    		}
    		if (c.myShopId == 14)
    			return false;
    		for (int i : Config.ITEM_SELLABLE) {
    			if (i == itemID) {
    				c.sendMessage("You can't sell "
    						+ c.getItems().getItemName(itemID).toLowerCase() + ".");
    				return false;
    			}
    		}
    
    		if (amount > 0 && itemID == (c.playerItems[fromSlot] - 1)) {
    			if (ShopHandler.ShopSModifier[c.myShopId] > 1) {
    				boolean IsIn = false;
    				for (int i = 0; i <= ShopHandler.ShopItemsStandard[c.myShopId]; i++) {
    					if (itemID == (ShopHandler.ShopItems[c.myShopId][i] - 1)) {
    						IsIn = true;
    						break;
    					}
    				}
    				if (IsIn == false) {
    					c.sendMessage("You can't sell "
    							+ c.getItems().getItemName(itemID).toLowerCase()
    							+ " to this store.");
    					return false;
    				}
    			}
    
    			if (amount > c.playerItemsN[fromSlot]
    					&& (Item.itemIsNote[(c.playerItems[fromSlot] - 1)] == true || Item.itemStackable[(c.playerItems[fromSlot] - 1)] == true)) {
    				amount = c.playerItemsN[fromSlot];
    			} else if (amount > c.getItems().getItemAmount(itemID)
    					&& Item.itemIsNote[(c.playerItems[fromSlot] - 1)] == false
    					&& Item.itemStackable[(c.playerItems[fromSlot] - 1)] == false) {
    				amount = c.getItems().getItemAmount(itemID);
    			}
    			// double ShopValue;
    			// double TotPrice;
    			int TotPrice2 = 0;
    			// int Overstock;
    			for (int i = amount; i > 0; i--) {
    				TotPrice2 = (int) Math.floor(getItemShopValue(itemID, 1,
    						fromSlot));
    				if (c.getItems().freeSlots() > 0
    						|| c.getItems().playerHasItem(995)) {
    					if (Item.itemIsNote[itemID] == false) {
    						c.getItems().deleteItem(itemID,
    								c.getItems().getItemSlot(itemID), 1);
    					} else {
    						c.getItems().deleteItem(itemID, fromSlot, 1);
    					}
    					c.getItems().addItem(995, TotPrice2);
    					addShopItem(itemID, 1);
    				} else {
    					c.sendMessage("You don't have enough space in your inventory.");
    					break;
    				}
    			}
    			c.getItems().resetItems(3823);
    			resetShop(c.myShopId);
    			updatePlayerShop();
    			return true;
    		}
    		return true;
    	}
    
    	public boolean addShopItem(int itemID, int amount) {
    		boolean Added = false;
    		if (amount <= 0) {
    			return false;
    		}
    		if (Item.itemIsNote[itemID] == true) {
    			itemID = c.getItems().getUnnotedItem(itemID);
    		}
    		for (int i = 0; i < ShopHandler.ShopItems.length; i++) {
    			if ((ShopHandler.ShopItems[c.myShopId][i] - 1) == itemID) {
    				ShopHandler.ShopItemsN[c.myShopId][i] += amount;
    				Added = true;
    			}
    		}
    		if (Added == false) {
    			for (int i = 0; i < ShopHandler.ShopItems.length; i++) {
    				if (ShopHandler.ShopItems[c.myShopId][i] == 0) {
    					ShopHandler.ShopItems[c.myShopId][i] = (itemID + 1);
    					ShopHandler.ShopItemsN[c.myShopId][i] = amount;
    					ShopHandler.ShopItemsDelay[c.myShopId][i] = 0;
    					break;
    				}
    			}
    		}
    		return true;
    	}
    
    	public long buyDelay;
    
    	public boolean buyItem(int itemID, int fromSlot, int amount) {
    		if (System.currentTimeMillis() - buyDelay < 1500) {
    			return false;
    		}
    
    		if (c.myShopId == 14) {
    			skillBuy(itemID);
    			return false;
    
    		} else if (c.myShopId == 15) {
    			buyVoid(itemID);
    			return false;
    
    		} else if (c.myShopId == 1) {
    			buyVoid(itemID);
    			return false;
    		}
    		if (itemID != itemID) {
    			c.sendMessage("Don't dupe or you will be IP Banned");
    			return false;
    		}
    
    		if (!shopSellsItem(itemID))
    			return false;
    
    		if (amount > 0) {
    			if (amount > ShopHandler.ShopItemsN[c.myShopId][fromSlot]) {
    				amount = ShopHandler.ShopItemsN[c.myShopId][fromSlot];
    			}
    			// double ShopValue;
    			// double TotPrice;
    			int TotPrice2 = 0;
    			// int Overstock;
    			int Slot = 0;
    			int Slot1 = 0;// Tokkul
    			int Slot2 = 0;// Pking Points
    			int Slot3 = 0;// Donator Gold
    
    			if (c.myShopId == 18) {
    				handleOtherShop(itemID);
    				return false;
    			}
    			if (c.myShopId == 21) {
    				handleOtherShop(itemID);
    				return false;
    			}
    			if (c.myShopId == 10) {
    				handleOtherShop(itemID);
    				return false;
    			}
    			if (c.myShopId == 52) {
    				handleOtherShop(itemID);
    				return false;
    			}
    			if (c.myShopId == 47) {
    				handleOtherShop(itemID);
    				return false;
    			}
    			if (c.myShopId == 17) {
    				handleOtherShop(itemID);
    				return false;
    			}
    			for (int i = amount; i > 0; i--) {
    				TotPrice2 = (int) Math.floor(getItemShopValue(itemID, 0,
    						fromSlot));
    				Slot = c.getItems().getItemSlot(995);
    				Slot1 = c.getItems().getItemSlot(6529);
    				Slot3 = c.getItems().getItemSlot(5555);
    				if (Slot == -1 && c.myShopId != 11 && c.myShopId != 29
    						&& c.myShopId != 30 && c.myShopId != 31) {
    					c.sendMessage("You don't have enough coins.");
    					break;
    				}
    				if (Slot1 == -1 && c.myShopId == 29 || c.myShopId == 21 || c.myShopId == 30
    						|| c.myShopId == 31) {
    					c.sendMessage("You don't have enough tokkul.");
    					break;
    				}
    				if (Slot3 == -1 && c.myShopId == 11) {
    					c.sendMessage("You don't have enough donator gold.");
    					break;
    				}
    
    				if (TotPrice2 <= 1) {
    					TotPrice2 = (int) Math.floor(getItemShopValue(itemID, 0,
    							fromSlot));
    					TotPrice2 *= 1.66;
    				}
    				if (c.myShopId == 29 || c.myShopId == 30 || c.myShopId == 31) {
    					if (c.playerItemsN[Slot1] >= TotPrice2) {
    						if (c.getItems().freeSlots() > 0) {
    							buyDelay = System.currentTimeMillis();
    							c.getItems().deleteItem(6529,
    									c.getItems().getItemSlot(6529), TotPrice2);
    							c.getItems().addItem(itemID, 1);
    							ShopHandler.ShopItemsN[c.myShopId][fromSlot] -= 1;
    							ShopHandler.ShopItemsDelay[c.myShopId][fromSlot] = 0;
    							if ((fromSlot + 1) > ShopHandler.ShopItemsStandard[c.myShopId]) {
    								ShopHandler.ShopItems[c.myShopId][fromSlot] = 0;
    							}
    						} else {
    							c.sendMessage("You don't have enough space in your inventory.");
    							break;
    						}
    					} else {
    						c.sendMessage("You don't have enough tokkul.");
    						break;
    					}
    				} else if (c.myShopId == 47) {
    					if (c.pkPoints >= TotPrice2) {
    						if (c.getItems().freeSlots() > 0) {
    							buyDelay = System.currentTimeMillis();
    							c.pkPoints -= TotPrice2;
    							c.getItems().addItem(itemID, 1);
    							ShopHandler.ShopItemsN[c.myShopId][fromSlot] -= 1;
    							ShopHandler.ShopItemsDelay[c.myShopId][fromSlot] = 0;
    							if ((fromSlot + 1) > ShopHandler.ShopItemsStandard[c.myShopId]) {
    								ShopHandler.ShopItems[c.myShopId][fromSlot] = 0;
    							}
    						} else {
    							c.sendMessage("You don't have enough space in your inventory.");
    							break;
    						}
    					} else {
    						c.sendMessage("You don't have enough Pk Points.");
    						break;
    					}
    				} else if (c.myShopId == 11) {
    					if (c.playerItemsN[Slot3] >= TotPrice2) {
    						if (c.getItems().freeSlots() > 0) {
    							buyDelay = System.currentTimeMillis();
    							c.getItems().deleteItem(5555,
    									c.getItems().getItemSlot(5555), TotPrice2);
    							c.getItems().addItem(itemID, 1);
    							ShopHandler.ShopItemsN[c.myShopId][fromSlot] -= 1;
    							ShopHandler.ShopItemsDelay[c.myShopId][fromSlot] = 0;
    							if ((fromSlot + 1) > ShopHandler.ShopItemsStandard[c.myShopId]) {
    								ShopHandler.ShopItems[c.myShopId][fromSlot] = 0;
    							}
    						} else {
    							c.sendMessage("You don't have enough space in your inventory.");
    							break;
    						}
    					} else {
    						c.sendMessage("You don't have enough donator gold.");
    						break;
    					}
    				} else if (c.myShopId != 11 && c.myShopId != 29
    						|| c.myShopId != 30 || c.myShopId != 31) {
    					if (c.playerItemsN[Slot] >= TotPrice2) {
    						if (c.getItems().freeSlots() > 0) {
    							buyDelay = System.currentTimeMillis();
    							c.getItems().deleteItem(995,
    									c.getItems().getItemSlot(995), TotPrice2);
    							c.getItems().addItem(itemID, 1);
    							ShopHandler.ShopItemsN[c.myShopId][fromSlot] -= 1;
    							ShopHandler.ShopItemsDelay[c.myShopId][fromSlot] = 0;
    							if ((fromSlot + 1) > ShopHandler.ShopItemsStandard[c.myShopId]) {
    								ShopHandler.ShopItems[c.myShopId][fromSlot] = 0;
    							}
    						} else {
    							c.sendMessage("You don't have enough space in your inventory.");
    							break;
    						}
    					} else {
    						c.sendMessage("You don't have enough coins.");
    						break;
    					}
    				}
    			}
    			c.getItems().resetItems(3823);
    			resetShop(c.myShopId);
    			updatePlayerShop();
    			return true;
    		}
    		return false;
    	}
    
    	public void handleOtherShop(int itemID) {
    		if (c.myShopId ==19 || c.myShopId == 20 || c.myShopId == 21 || c.myShopId == 22 || c.myShopId == 23 || c.myShopId == 24 || c.myShopId == 25 || c.myShopId == 26 || c.myShopId == 27 || c.myShopId == 28 || c.myShopId == 29 || c.myShopId == 30){
                    if (c.prestigePoint >= getPrestigeItemValue(itemID)) {
    					if (c.getItems().freeSlots() > 0) {
    						c.prestigePoint -= getPrestigeItemValue(itemID);
    						c.getItems().addItem(itemID,1);
    						c.getItems().resetItems(3823);
    						c.sendMessage("Sucess!");
    					}
    				} else {
    					c.sendMessage("You do not have enough Prestige Points to buy this item.");			
    				}
    			} else if (c.myShopId == 47) {
    			if (c.pkPoints >= getSpecialItemValue(itemID)) {
    				if (c.getItems().freeSlots() > 0) {
    					c.pkPoints -= getSpecialItemValue(itemID);
    					c.getItems().addItem(itemID, 1);
    					c.getItems().resetItems(3823);
    				}
    			} else {
    				c.sendMessage("You do not have enough LunarScape points points to buy this item.");
    			}
    		} else if (c.myShopId == 18) {
    			if (c.pcPoints >= getSpecialItemValue(itemID)) {
    				if (c.getItems().freeSlots() > 0) {
    					c.pcPoints -= getSpecialItemValue(itemID);
    					c.getItems().addItem(itemID, 1);
    					c.getItems().resetItems(3823);
    				}
    			} else {
    				c.sendMessage("You do not have enough LunarScape points points to buy this item.");
    			}
    		} else if (c.myShopId == 10) {
    			if (c.votePoints >= getSpecialItemValue(itemID)) {
    				if (c.getItems().freeSlots() > 0) {
    					c.votePoints -= getSpecialItemValue(itemID);
    					c.getItems().addItem(itemID, 1);
    					c.getItems().resetItems(3823);
    				}
    			} else {
    				c.sendMessage("You do not have enough Voteing points to buy this item.");
    			}
    		} else if (c.myShopId == 52) {
    			if (c.mbPoints >= getSpecialItemValue(itemID)) {
    				if (c.getItems().freeSlots() > 0) {
    					c.mbPoints -= getSpecialItemValue(itemID);
    					c.getItems().addItem(itemID, 1);
    					c.getItems().resetItems(3823);
    				}
    			} else {
    				c.sendMessage("You do not have enough Mage Arena Points to buy this item.");
    			}
    		} else if (c.myShopId == 21) {
    			if (c.magePoints >= getSpecialItemValue(itemID)) {
    				if (c.getItems().freeSlots() > 0) {
    					c.magePoints -= getSpecialItemValue(itemID);
    					c.getItems().addItem(itemID, 1);
    					c.getItems().resetItems(3823);
    				}
    			} else {
    				c.sendMessage("You do not have enough Agility Points to buy this item.");
    			}
    
    		}
    	}
    
    	public void openSkillCape() {
    		int capes = get99Count();
    		/*
    		 * if (capes > 1) capes = 1; else capes = 0;
    		 */
    		c.myShopId = 15;
    		setupSkillCapes(capes, get99Count());
    	}
    
    	/*
    	 * public int[][] skillCapes =
    	 * {{0,9747,4319,2679},{1,2683,4329,2685},{2,2680
    	 * ,4359,2682},{3,2701,4341,2703
    	 * },{4,2686,4351,2688},{5,2689,4347,2691},{6,2692,4343,2691},
    	 * {7,2737,4325,2733
    	 * },{8,2734,4353,2736},{9,2716,4337,2718},{10,2728,4335,2730
    	 * },{11,2695,4321,2697},{12,2713,4327,2715},{13,2725,4357,2727},
    	 * {14,2722,4345
    	 * ,2724},{15,2707,4339,2709},{16,2704,4317,2706},{17,2710,4361,
    	 * 2712},{18,2719,4355,2721},****,2737,4331,2739},{20,2698,4333,2700}};
    	 */
    	public int[] skillCapes = { 9747, 9753, 9750, 9768, 9756, 9759, 9762, 9801,
    			9807, 9783, 9798, 9804, 9780, 9795, 9792, 9774, 9771, 9777, 9786,
    			9810, 9765 };
    
    	public int get99Count() {
    		int count = 0;
    		for (int j = 0; j < skillCapes.length; j++) {
    			if (c.getLevelForXP(c.playerXP[j]) >= 99) {
    				count++;
    			}
    		}
    		return count;
    	}
    
    	public void setupSkillCapes(int capes, int capes2) {
    		synchronized (c) {
    			c.getItems().resetItems(3823);
    			c.isShopping = true;
    			c.myShopId = 14;
    			c.getPA().sendFrame248(3824, 3822);
    			c.getPA().sendFrame126("Skillcape Shop", 3901);
    
    			int TotalItems = 0;
    			TotalItems = capes2;
    			if (TotalItems > ShopHandler.MaxShopItems) {
    				TotalItems = ShopHandler.MaxShopItems;
    			}
    			c.getOutStream().createFrameVarSizeWord(53);
    			c.getOutStream().writeWord(3900);
    			c.getOutStream().writeWord(TotalItems);
    			int TotalCount = 0;
    			int off = (capes > 1 ? 2 : 0);
    			for (int i = 0; i < skillCapes.length; i++) {
    				if (c.getLevelForXP(c.playerXP[i]) < 99)
    					continue;
    				c.getOutStream().writeByte(1);
    				c.getOutStream().writeWordBigEndianA(skillCapes[i] + off); // why
    																			// the
    																			// +2?
    																			// uhh
    																			// this
    																			// is
    																			// just
    																			// from
    																			// the
    																			// original
    																			// nrpk?
    																			// i
    																			// think
    				TotalCount++;
    			}
    			c.getOutStream().endFrameVarSizeWord();
    			c.flushOutStream();
    		}
    	}
    
    	public void skillBuy(int item) {
    		int nn = get99Count();
    		if (nn > 1)
    			nn = 1;
    		else
    			nn = 0;
    		for (int j = 0; j < skillCapes.length; j++) {
    			if (skillCapes[j] == item || skillCapes[j] + 1 == item) {
    				if (c.getItems().freeSlots() > 1) {
    					if (c.getItems().playerHasItem(995, 99000)) {
    						if (c.getLevelForXP(c.playerXP[j]) >= 99) {
    							c.getItems().deleteItem(995,
    									c.getItems().getItemSlot(995), 99000);
    							c.getItems().addItem(skillCapes[j] + nn, 1);
    							c.getItems().addItem(skillCapes[j] + 2, 1);
    						} else {
    							c.sendMessage("You must have 99 in the skill of the cape you're trying to buy.");
    						}
    					} else {
    						c.sendMessage("You need 99k to buy this item.");
    					}
    				} else {
    					c.sendMessage("You must have at least 1 inventory spaces to buy this item.");
    				}
    			}
    			/*
    			 * if (skillCapes[j][1 + nn] == item) { if (c.getItems().freeSlots()
    			 * >= 1) { if (c.getItems().playerHasItem(995,99000)) { if
    			 * (c.getLevelForXP(c.playerXP[j]) >= 99) {
    			 * c.getItems().deleteItem(995, c.getItems().getItemSlot(995),
    			 * 99000); c.getItems().addItem(skillCapes[j] + nn,1);
    			 * c.getItems().addItem(skillCapes[j] + 2,1); } else {
    			 * c.sendMessage(
    			 * "You must have 99 in the skill of the cape you're trying to buy."
    			 * ); } } else { c.sendMessage("You need 99k to buy this item."); }
    			 * } else { c.sendMessage(
    			 * "You must have at least 1 inventory spaces to buy this item."); }
    			 * break; }
    			 */
    		}
    		c.getItems().resetItems(3823);
    	}
    
    	public void openVoid() {
    		/*
    		 * synchronized(c) { c.getItems().resetItems(3823); c.isShopping = true;
    		 * c.myShopId = 15; c.getPA().sendFrame248(3824, 3822);
    		 * c.getPA().sendFrame126("Void Recovery", 3901);
    		 * 
    		 * int TotalItems = 5; c.getOutStream().createFrameVarSizeWord(53);
    		 * c.getOutStream().writeWord(3900);
    		 * c.getOutStream().writeWord(TotalItems); for (int i = 0; i <
    		 * c.voidStatus.length; i++) {
    		 * c.getOutStream().writeByte(c.voidStatus[i]);
    		 * c.getOutStream().writeWordBigEndianA(2519 + i * 2); }
    		 * c.getOutStream().endFrameVarSizeWord(); c.flushOutStream(); }
    		 */
    	}
    
    	public void buyVoid(int item) {
    		/*
    		 * if (item > 2527 || item < 2518) return; //c.sendMessage("" + item);
    		 * if (c.voidStatus[(item-2518)/2] > 0) { if (c.getItems().freeSlots()
    		 * >= 1) { if
    		 * (c.getItems().playerHasItem(995,c.getItems().getUntradePrice(item)))
    		 * { c.voidStatus[(item-2518)/2]--;
    		 * c.getItems().deleteItem(995,c.getItems().getItemSlot(995),
    		 * c.getItems().getUntradePrice(item)); c.getItems().addItem(item,1);
    		 * openVoid(); } else { c.sendMessage("This item costs " +
    		 * c.getItems().getUntradePrice(item) + " coins to rebuy."); } } else {
    		 * c.sendMessage("I should have a free inventory space."); } } else {
    		 * c.sendMessage
    		 * ("I don't need to recover this item from the void knights."); }
    		 */
    	}
    
    }[/SPOIL]
    Reply With Quote  
     

  2. #2  
    Registered Member Stewie1million's Avatar
    Join Date
    Jun 2011
    Posts
    588
    Thanks given
    2
    Thanks received
    56
    Rep Power
    14
    You didn't give them a price...
    Reply With Quote  
     

  3. #3  
    Banned
    Join Date
    May 2011
    Posts
    205
    Thanks given
    39
    Thanks received
    3
    Rep Power
    0
    Quote Originally Posted by Demonic Rain View Post
    You didn't give them a price...
    what exactly do you mean because its listed in the prestige items values and it has a price but its using the price from prices.txt and idk why
    Reply With Quote  
     

  4. #4  
    Banned
    Join Date
    May 2011
    Posts
    205
    Thanks given
    39
    Thanks received
    3
    Rep Power
    0
    cmon guys :/
    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: 38
    Last Post: 10-02-2011, 10:57 PM
  2. Replies: 2
    Last Post: 09-08-2011, 06:19 AM
  3. Replies: 13
    Last Post: 06-20-2011, 02:25 PM
  4. Replies: 1
    Last Post: 03-05-2011, 07:05 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •