forked from MagicBane/Server
reimplement resource merchant with 5mil stacks
This commit is contained in:
@@ -129,43 +129,46 @@ public class Warehouse extends AbstractWorldObject {
|
||||
|
||||
public static void warehouseDeposit(MerchantMsg msg, PlayerCharacter player, NPC npc, ClientConnection origin) {
|
||||
|
||||
Building warehouseBuilding = npc.getBuilding();
|
||||
if (warehouseBuilding == null) {
|
||||
Building warehouseBuilding;
|
||||
Warehouse warehouse;
|
||||
int depositAmount;
|
||||
Dispatch dispatch;
|
||||
|
||||
Item resource = Item.getFromCache(msg.getItemID());
|
||||
|
||||
if (resource == null)
|
||||
return;
|
||||
|
||||
depositAmount = msg.getAmount();
|
||||
CharacterItemManager itemMan = player.getCharItemManager();
|
||||
|
||||
if (itemMan.doesCharOwnThisItem(resource.getObjectUUID()) == false)
|
||||
return;
|
||||
|
||||
warehouseBuilding = npc.getBuilding();
|
||||
|
||||
if (warehouseBuilding == null)
|
||||
return;
|
||||
|
||||
warehouse = warehouseByBuildingUUID.get(warehouseBuilding.getObjectUUID());
|
||||
|
||||
if (warehouse == null)
|
||||
return;
|
||||
|
||||
ItemBase ib = resource.getItemBase();
|
||||
|
||||
if (!warehouse.deposit(player, resource, depositAmount, true, true)) {
|
||||
// ChatManager.chatGuildError(player, "Failed to deposit " + ib.getName() +".");
|
||||
// Logger.debug("OpenWindow", player.getName() + " Failed to deposit Item with ID " + resource.getObjectUUID() + " from Warehouse With ID = " + warehouseBuilding.getObjectUUID());
|
||||
return;
|
||||
}
|
||||
|
||||
player.getTimestamps().put("lastDepositWarehouse", System.currentTimeMillis());
|
||||
player.depositingWarehouse = true;
|
||||
player.warehouseBuilding = warehouseBuilding;
|
||||
player.getCharItemManager().updateLock = true;
|
||||
Item resource = Item.getFromCache(msg.getItemID());
|
||||
|
||||
if (resource == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
int depositAmount = msg.getAmount();
|
||||
CharacterItemManager itemMan = player.getCharItemManager();
|
||||
|
||||
if (!itemMan.doesCharOwnThisItem(resource.getObjectUUID())) {
|
||||
return;
|
||||
}
|
||||
|
||||
Warehouse warehouse = warehouseByBuildingUUID.get(warehouseBuilding.getObjectUUID());
|
||||
if (warehouse == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!warehouse.deposit(player, resource, depositAmount, true, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
//ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
||||
//vrm.setGuild(player.getGuild());
|
||||
//vrm.setWarehouseBuilding(warehouseBuilding);
|
||||
//vrm.configure();
|
||||
//Dispatch dispatch = Dispatch.borrow(player, vrm);
|
||||
//DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
||||
vrm.setGuild(player.getGuild());
|
||||
vrm.setWarehouseBuilding(warehouseBuilding);
|
||||
vrm.configure();
|
||||
dispatch = Dispatch.borrow(player, vrm);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||
}
|
||||
|
||||
public static void warehouseWithdraw(MerchantMsg msg, PlayerCharacter player, NPC npc, ClientConnection origin) {
|
||||
@@ -459,59 +462,6 @@ public class Warehouse extends AbstractWorldObject {
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean removeFromInventory(CharacterItemManager itemMan, ItemBase ib, int amount, PlayerCharacter pc) {
|
||||
if (ib.getUUID() == 7) {
|
||||
if (!itemMan.modifyInventoryGold(-amount)) {
|
||||
// ChatManager.chatSystemError(pc, "You do not have this Gold.");
|
||||
return false;
|
||||
}
|
||||
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
||||
ugm.configure();
|
||||
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, engine.Enum.DispatchChannel.SECONDARY);
|
||||
} else {
|
||||
Item resource = itemMan.getItemByUUID(ib.getUUID());
|
||||
if (resource == null) return false;
|
||||
itemMan.delete(resource);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean updateDatabase(int itemID, int newAmount) {
|
||||
switch (itemID) {
|
||||
case 7: return DbManager.WarehouseQueries.updateGold(this, newAmount);
|
||||
case 1580000: return DbManager.WarehouseQueries.updateStone(this, newAmount);
|
||||
case 1580001: return DbManager.WarehouseQueries.updateTruesteel(this, newAmount);
|
||||
case 1580002: return DbManager.WarehouseQueries.updateIron(this, newAmount);
|
||||
case 1580003: return DbManager.WarehouseQueries.updateAdamant(this, newAmount);
|
||||
case 1580004: return DbManager.WarehouseQueries.updateLumber(this, newAmount);
|
||||
case 1580005: return DbManager.WarehouseQueries.updateOak(this, newAmount);
|
||||
case 1580006: return DbManager.WarehouseQueries.updateBronzewood(this, newAmount);
|
||||
case 1580007: return DbManager.WarehouseQueries.updateMandrake(this, newAmount);
|
||||
case 1580008: return DbManager.WarehouseQueries.updateCoal(this, newAmount);
|
||||
case 1580009: return DbManager.WarehouseQueries.updateAgate(this, newAmount);
|
||||
case 1580010: return DbManager.WarehouseQueries.updateDiamond(this, newAmount);
|
||||
case 1580011: return DbManager.WarehouseQueries.updateOnyx(this, newAmount);
|
||||
case 1580012: return DbManager.WarehouseQueries.updateAzoth(this, newAmount);
|
||||
case 1580013: return DbManager.WarehouseQueries.updateOrichalk(this, newAmount);
|
||||
case 1580014: return DbManager.WarehouseQueries.updateAntimony(this, newAmount);
|
||||
case 1580015: return DbManager.WarehouseQueries.updateSulfur(this, newAmount);
|
||||
case 1580016: return DbManager.WarehouseQueries.updateQuicksilver(this, newAmount);
|
||||
case 1580017: return DbManager.WarehouseQueries.updateGalvor(this, newAmount);
|
||||
case 1580018: return DbManager.WarehouseQueries.updateWormwood(this, newAmount);
|
||||
case 1580019: return DbManager.WarehouseQueries.updateObsidian(this, newAmount);
|
||||
case 1580020: return DbManager.WarehouseQueries.updateBloodstone(this, newAmount);
|
||||
case 1580021: return DbManager.WarehouseQueries.updateMithril(this, newAmount);
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
private Resource getResourceType(Item resource) {
|
||||
return resource.getItemBase().getType().equals(engine.Enum.ItemType.GOLD)
|
||||
? Resource.GOLD
|
||||
: Resource.valueOf(resource.getItemBase().getName().toUpperCase());
|
||||
}
|
||||
|
||||
//for mine deposit
|
||||
public synchronized boolean depositFromMine(Mine mine, ItemBase resource, int amount) {
|
||||
|
||||
@@ -1455,8 +1405,8 @@ public class Warehouse extends AbstractWorldObject {
|
||||
|
||||
return newCost;
|
||||
}
|
||||
public static int getSellStackSize(int id){
|
||||
|
||||
return (int)500000 / (getCostForResource(id));
|
||||
public static int getSellStackSize(int id){
|
||||
return (int)(5000000 / (getCostForResource(id)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user