@ -1415,18 +1415,15 @@ public class ClientMessagePump implements NetMsgHandler {
@@ -1415,18 +1415,15 @@ public class ClientMessagePump implements NetMsgHandler {
int cost = me . magicValue ;
if ( npc . getContractID ( ) = = 1201 & & me . getItemBase ( ) . getName ( ) . equals ( "Prospector" ) )
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 profit = npc . getSellPercent ( sourcePlayer ) - bargain ;
if ( me . getItemBase ( ) . getType ( ) . equals ( ItemType . POTION ) )
profit - = 1 . 0f ;
if ( profit < 1 )
profit = 1 ;
if ( npc . getContractID ( ) = = 900 ) {
cost = Warehouse . getCostForResource ( ib . getUUID ( ) ) * Warehouse . getSellStackSize ( ib . getUUID ( ) ) ;
}
cost * = profit ;
if ( gold . getNumOfItems ( ) - cost < 0 ) {
//dont' have enough goldItem exit!
@ -1447,33 +1444,7 @@ public class ClientMessagePump implements NetMsgHandler {
@@ -1447,33 +1444,7 @@ public class ClientMessagePump implements NetMsgHandler {
return ;
}
if ( me . getItemBase ( ) . getType ( ) . equals ( ItemType . RESOURCE ) & & npc . getContractID ( ) = = 900 ) {
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 ( ) ) ;
}
}
handleResourcePurchase ( me , itemMan , npc , buy , sourcePlayer , ib ) ;
} else {
buy = Item . createItemForPlayer ( sourcePlayer , ib ) ;
if ( buy ! = null ) {
@ -1589,6 +1560,35 @@ public class ClientMessagePump implements NetMsgHandler {
@@ -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 ) {
PlayerCharacter player = SessionManager . getPlayerCharacter ( origin ) ;