public static void BuyItemReceived(int _fromClient, Packet _packet) { int _marketId = _packet.ReadInt(); int _quantityForBuy = _packet.ReadInt(); if (_marketId <= 0 || _quantityForBuy <= 0) { ServerSend.BuyItemResult(_fromClient, false); } else { int _playerId = Server.clients[_fromClient].clientData.playerId; int _itemId = -1; int _sellerId = -1; int _priceForQuantity = int.MaxValue; int _quantityLeft = Postgres.CheckItemQuantityInMarketBeforeBuying(_marketId, _quantityForBuy, ref _itemId, ref _sellerId, ref _priceForQuantity); if (_quantityLeft < 0 || _playerId == _sellerId) { ServerSend.BuyItemResult(_fromClient, false); } else { int _personalDataId = Server.clients[_fromClient].clientData.personalDataId; bool _isAdmin = Server.clients[_fromClient].clientData.isAdmin; if (_isAdmin) { ServerSend.BuyItemResult(_fromClient, Postgres.ChangeBalanceOfSellerAndUpdateMarketRecord(_marketId, _playerId, _quantityLeft, _priceForQuantity)); } else { int _newBalance = Postgres.GetBalanceAndAdminStatusByPLayerIdAndPersonalDataId(_playerId, _personalDataId, _fromClient); _newBalance -= _priceForQuantity; if (_newBalance <= 0) { ServerSend.BuyItemResult(_fromClient, false); } else { ServerSend.BuyItemResult(_fromClient, Postgres.ChangeBalanceOfBuyerAndSellerAndUpdateMarketRecordAndInventory( _marketId, _itemId, _playerId, _sellerId, _quantityForBuy, _quantityLeft, _priceForQuantity)); } } } } }
public static void UpdateCurrentPlayerInventory(int _fromClient, Packet _packet) { int _playerId = Server.clients[_fromClient].clientData.playerId; int _balance = Postgres.GetBalanceAndAdminStatusByPLayerIdAndPersonalDataId( _playerId, Server.clients[_fromClient].clientData.personalDataId, _fromClient); bool _isAdmin = Server.clients[_fromClient].clientData.isAdmin; if (_balance > -1) { ServerSend.SendBalanceAndInventory(_fromClient, _playerId, _balance, _isAdmin); } else { ServerSend.ValidationError(_fromClient); } }
public static void UpdateMarketRecords(int _fromClient, Packet _packet) { string _pattern = _packet.ReadString(); int _playerId = Server.clients[_fromClient].clientData.playerId; int _balance = Postgres.GetBalanceAndAdminStatusByPLayerIdAndPersonalDataId( _playerId, Server.clients[_fromClient].clientData.personalDataId, _fromClient); bool _isAdmin = Server.clients[_fromClient].clientData.isAdmin; if (_balance > -1) { ServerSend.SendBalanceAndMarketRecords(_fromClient, _playerId, _balance, _isAdmin, _pattern); } else { ServerSend.ValidationError(_fromClient); } }