|
|
@ -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); |
|
|
|