| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1415,18 +1415,15 @@ public class ClientMessagePump implements NetMsgHandler { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            int cost = me.magicValue; | 
					 | 
					 | 
					 | 
					                            int cost = me.magicValue; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if(npc.getContractID() == 1201 && me.getItemBase().getName().equals("Prospector")) | 
					 | 
					 | 
					 | 
					                            if(npc.getContractID() == 1201 && me.getItemBase().getName().equals("Prospector")) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                cost = 50; | 
					 | 
					 | 
					 | 
					                                cost = 50; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            int resourceCost = (Warehouse.getSellStackSize(me.getItemBase().getUUID()) * Warehouse.getCostForResource(me.getItemBase().getUUID())); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if (resourceCost != 0) | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                cost = resourceCost; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if(npc.contractUUID == 900 && me.getItemBase().getUUID() == 1705032){ | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                cost = 1000000; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            } | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            float bargain = sourcePlayer.getBargain(); | 
					 | 
					 | 
					 | 
					                            float bargain = sourcePlayer.getBargain(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            float profit = npc.getSellPercent(sourcePlayer) - bargain; | 
					 | 
					 | 
					 | 
					                            float profit = npc.getSellPercent(sourcePlayer) - bargain; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if(me.getItemBase().getType().equals(ItemType.POTION)) | 
					 | 
					 | 
					 | 
					                            if(me.getItemBase().getType().equals(ItemType.POTION)) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                profit -= 1.0f; | 
					 | 
					 | 
					 | 
					                                profit -= 1.0f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if (profit < 1) | 
					 | 
					 | 
					 | 
					                            if (profit < 1) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                profit = 1; | 
					 | 
					 | 
					 | 
					                                profit = 1; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            if(npc.getContractID() == 900){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                cost = Warehouse.getCostForResource(ib.getUUID()) * Warehouse.getSellStackSize(ib.getUUID()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            cost *= profit; | 
					 | 
					 | 
					 | 
					                            cost *= profit; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if (gold.getNumOfItems() - cost < 0) { | 
					 | 
					 | 
					 | 
					                            if (gold.getNumOfItems() - cost < 0) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                //dont' have enough goldItem exit!
 | 
					 | 
					 | 
					 | 
					                                //dont' have enough goldItem exit!
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1447,33 +1444,7 @@ public class ClientMessagePump implements NetMsgHandler { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                return; | 
					 | 
					 | 
					 | 
					                                return; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            } | 
					 | 
					 | 
					 | 
					                            } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if(me.getItemBase().getType().equals(ItemType.RESOURCE) && npc.getContractID() == 900){ | 
					 | 
					 | 
					 | 
					                            if(me.getItemBase().getType().equals(ItemType.RESOURCE) && npc.getContractID() == 900){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                boolean stacked = false; | 
					 | 
					 | 
					 | 
					                                handleResourcePurchase(me,itemMan,npc,buy,sourcePlayer,ib); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                int buystack = Warehouse.getSellStackSize(me.getItemBase().getUUID()); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                for(Item item : itemMan.getInventory()){ | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                    int itemID = item.getItemBaseID(); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                    int meID = me.getItemBase().getUUID(); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                    if(itemID == meID){ | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                        if(Warehouse.maxResources.isEmpty()) | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                            Warehouse.getMaxResources(); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                        int maxStack = Warehouse.maxResources.get(itemID); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                        if(maxStack > item.getNumOfItems() + buystack){ | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                            item.setNumOfItems(item.getNumOfItems() + buystack); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                            stacked = true; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                            itemMan.updateInventory(); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                            DbManager.ItemQueries.UPDATE_NUM_ITEMS(item,item.getNumOfItems()); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                            break; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                        } | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                    } | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                } | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                if(!stacked){ | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                    buy = Item.createItemForPlayer(sourcePlayer, ib); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                    if (buy != null) { | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                        me.transferEnchants(buy); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                        itemMan.addItemToInventory(buy); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                        buy.setNumOfItems(buystack); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                        DbManager.ItemQueries.UPDATE_NUM_ITEMS(buy,buy.getNumOfItems()); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                    } | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                } | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            }else { | 
					 | 
					 | 
					 | 
					                            }else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                buy = Item.createItemForPlayer(sourcePlayer, ib); | 
					 | 
					 | 
					 | 
					                                buy = Item.createItemForPlayer(sourcePlayer, ib); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                if (buy != null) { | 
					 | 
					 | 
					 | 
					                                if (buy != null) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1589,6 +1560,35 @@ public class ClientMessagePump implements NetMsgHandler { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    public static void handleResourcePurchase(MobEquipment me, CharacterItemManager itemMan, NPC npc, Item buy, PlayerCharacter sourcePlayer, ItemBase ib){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        boolean stacked = false; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        int buystack = Warehouse.getSellStackSize(me.getItemBase().getUUID()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        for(Item item : itemMan.getInventory()){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            int itemID = item.getItemBaseID(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            int meID = me.getItemBase().getUUID(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            if(itemID == meID){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                if(Warehouse.maxResources.isEmpty()) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    Warehouse.getMaxResources(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                int maxStack = Warehouse.maxResources.get(itemID); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                if(maxStack > item.getNumOfItems() + buystack){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    item.setNumOfItems(item.getNumOfItems() + buystack); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    stacked = true; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    itemMan.updateInventory(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    DbManager.ItemQueries.UPDATE_NUM_ITEMS(item,item.getNumOfItems()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    break; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if(!stacked){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            buy = Item.createItemForPlayer(sourcePlayer, ib); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            if (buy != null) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                me.transferEnchants(buy); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                itemMan.addItemToInventory(buy); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                buy.setNumOfItems(buystack); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                DbManager.ItemQueries.UPDATE_NUM_ITEMS(buy,buy.getNumOfItems()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private static void Repair(RepairMsg msg, ClientConnection origin) { | 
					 | 
					 | 
					 | 
					    private static void Repair(RepairMsg msg, ClientConnection origin) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        PlayerCharacter player = SessionManager.getPlayerCharacter(origin); | 
					 | 
					 | 
					 | 
					        PlayerCharacter player = SessionManager.getPlayerCharacter(origin); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |