public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int    auctionID   = packet.ReadInt();
            string translation = LanguageMgr.GetTranslation("AuctionDeleteHandler.Fail", new object[0]);

            using (PlayerBussiness playerBussiness = new PlayerBussiness())
            {
                if (playerBussiness.DeleteAuction(auctionID, client.Player.PlayerCharacter.ID, ref translation))
                {
                    client.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Receiver);
                    client.Out.SendAuctionRefresh(null, auctionID, false, null);
                }
                else
                {
                    AuctionInfo auctionSingle = playerBussiness.GetAuctionSingle(auctionID);
                    client.Out.SendAuctionRefresh(auctionSingle, auctionID, auctionSingle != null, null);
                }
                client.Out.SendMessage(eMessageType.Normal, translation);
            }
            return(0);
        }
Beispiel #2
0
        public override int HandlePacket(GamePlayer player, GSPacketIn packet)
        {
            int    id  = packet.ReadInt();
            string msg = LanguageMgr.GetTranslation("AuctionDeleteHandler.Fail", new object[0]);

            using (PlayerBussiness db = new PlayerBussiness())
            {
                if (db.DeleteAuction(id, player.PlayerCharacter.ID, ref msg))
                {
                    player.Out.SendMailResponse(player.PlayerCharacter.ID, eMailRespose.Receiver);
                    player.Out.SendAuctionRefresh(null, id, false, null);
                }
                else
                {
                    AuctionInfo info = db.GetAuctionSingle(id);
                    player.Out.SendAuctionRefresh(info, id, info != null, null);
                }
                player.Out.SendMessage(eMessageType.Normal, msg);
            }
            return(0);
        }
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int    id  = packet.ReadInt();
            string msg = LanguageMgr.GetTranslation("AuctionDeleteHandler.Fail");

            using (PlayerBussiness db = new PlayerBussiness())
            {
                if (db.DeleteAuction(id, client.Player.PlayerCharacter.ID, ref msg))
                {
                    client.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Receiver);
                    client.Out.SendAuctionRefresh(null, id, false, null);
                }
                else
                {
                    AuctionInfo info = db.GetAuctionSingle(id);
                    client.Out.SendAuctionRefresh(info, id, info != null, null);
                }

                client.Out.SendMessage(eMessageType.Normal, msg);
                // client.Out.SendMessage(eMessageType.ERROR,msg);
            }
            return(0);
        }
        public override int HandlePacket(GamePlayer player, GSPacketIn packet)
        {
            int        id     = packet.ReadInt();
            int        price  = packet.ReadInt();
            bool       result = false;
            GSPacketIn pkg    = packet.Clone();

            pkg.ClearContext();
            string msg = "AuctionUpdateHandler.Fail";
            int    result2;

            if (player.PlayerCharacter.HasBagPassword && player.PlayerCharacter.IsLocked)
            {
                player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0]));
                result2 = 0;
            }
            else
            {
                using (PlayerBussiness db = new PlayerBussiness())
                {
                    AuctionInfo info = db.GetAuctionSingle(id);
                    if (info == null)
                    {
                        msg = "AuctionUpdateHandler.Msg1";
                    }
                    else
                    {
                        if (info.PayType == 0 && price > player.PlayerCharacter.Gold)
                        {
                            msg = "AuctionUpdateHandler.Msg2";
                        }
                        else
                        {
                            if (info.PayType == 1 && price > player.PlayerCharacter.Money)
                            {
                                msg = "AuctionUpdateHandler.Msg3";
                            }
                            else
                            {
                                if (info.BuyerID == 0 && info.Price > price)
                                {
                                    msg = "AuctionUpdateHandler.Msg4";
                                }
                                else
                                {
                                    if (info.BuyerID != 0 && info.Price + info.Rise > price && (info.Mouthful == 0 || info.Mouthful > price))
                                    {
                                        msg = "AuctionUpdateHandler.Msg5";
                                    }
                                    else
                                    {
                                        int oldBuyerID = info.BuyerID;
                                        info.BuyerID   = player.PlayerCharacter.ID;
                                        info.BuyerName = player.PlayerCharacter.NickName;
                                        info.Price     = price;
                                        if (info.Mouthful != 0 && price >= info.Mouthful)
                                        {
                                            info.Price   = info.Mouthful;
                                            info.IsExist = false;
                                        }
                                        if (db.UpdateAuction(info))
                                        {
                                            if (info.PayType == 0)
                                            {
                                                player.RemoveGold(info.Price);
                                            }
                                            else
                                            {
                                                player.RemoveMoney(info.Price, LogMoneyType.Auction, LogMoneyType.Auction_Update);
                                            }
                                            if (info.IsExist)
                                            {
                                                msg = "AuctionUpdateHandler.Msg6";
                                            }
                                            else
                                            {
                                                msg = "AuctionUpdateHandler.Msg7";
                                                player.Out.SendMailResponse(info.AuctioneerID, eMailRespose.Receiver);
                                                player.Out.SendMailResponse(info.BuyerID, eMailRespose.Receiver);
                                            }
                                            if (oldBuyerID != 0)
                                            {
                                                player.Out.SendMailResponse(oldBuyerID, eMailRespose.Receiver);
                                            }
                                            result = true;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    player.Out.SendAuctionRefresh(info, id, info != null && info.IsExist, null);
                    player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation(msg, new object[0]));
                }
                pkg.WriteBoolean(result);
                pkg.WriteInt(id);
                player.Out.SendTCP(pkg);
                result2 = 0;
            }
            return(result2);
        }
Beispiel #5
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int        id     = packet.ReadInt();
            int        price  = packet.ReadInt();
            bool       result = false;
            GSPacketIn pkg    = packet.Clone();

            pkg.ClearContext();

            string msg = "AuctionUpdateHandler.Fail";

            if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked"));
                return(0);
            }
            using (PlayerBussiness db = new PlayerBussiness())
            {
                AuctionInfo info = db.GetAuctionSingle(id);
                if (info == null)
                {
                    msg = "AuctionUpdateHandler.Msg1";
                }
                else if (info.PayType == 0 && price > client.Player.PlayerCharacter.Gold)
                {
                    msg = "AuctionUpdateHandler.Msg2";
                }
                else if (info.PayType == 1 && price > client.Player.PlayerCharacter.Money)
                {
                    msg = "AuctionUpdateHandler.Msg3";
                }
                else if (info.BuyerID == 0 && info.Price > price)
                {
                    msg = "AuctionUpdateHandler.Msg4";
                }
                else if (info.BuyerID != 0 && info.Price + info.Rise > price && (info.Mouthful == 0 || info.Mouthful > price))
                {
                    msg = "AuctionUpdateHandler.Msg5";
                }
                else
                {
                    int oldBuyerID = info.BuyerID;
                    info.BuyerID   = client.Player.PlayerCharacter.ID;
                    info.BuyerName = client.Player.PlayerCharacter.NickName;
                    info.Price     = price;
                    if (info.Mouthful != 0 && price >= info.Mouthful)
                    {
                        info.Price   = info.Mouthful;
                        info.IsExist = false;
                    }
                    if (db.UpdateAuction(info))
                    {
                        if (info.PayType == 0)
                        {
                            client.Player.RemoveGold(info.Price);
                        }
                        else
                        {
                            client.Player.RemoveMoney(info.Price);
                            LogMgr.LogMoneyAdd(LogMoneyType.Auction, LogMoneyType.Auction_Update, client.Player.PlayerCharacter.ID, info.Price, client.Player.PlayerCharacter.Money, 0, 0, 0, 0, "", "", "");
                        }

                        if (info.IsExist)
                        {
                            msg = "AuctionUpdateHandler.Msg6";
                        }
                        else
                        {
                            msg = "AuctionUpdateHandler.Msg7";
                            client.Out.SendMailResponse(info.AuctioneerID, eMailRespose.Receiver);
                            client.Out.SendMailResponse(info.BuyerID, eMailRespose.Receiver);
                        }

                        if (oldBuyerID != 0)
                        {
                            client.Out.SendMailResponse(oldBuyerID, eMailRespose.Receiver);//通知老买主价格被超出
                        }
                        result = true;
                    }
                }

                client.Out.SendAuctionRefresh(info, id, info != null ? info.IsExist : false, null);
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation(msg));
            }
            pkg.WriteBoolean(result);
            pkg.WriteInt(id);
            client.Out.SendTCP(pkg);
            return(0);
        }
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int        num         = packet.ReadInt();
            int        num2        = packet.ReadInt();
            bool       val         = false;
            GSPacketIn gSPacketIn  = new GSPacketIn(193, client.Player.PlayerCharacter.ID);
            string     translateId = "AuctionUpdateHandler.Fail";

            if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0]));
                return(0);
            }
            using (PlayerBussiness playerBussiness = new PlayerBussiness())
            {
                AuctionInfo auctionSingle = playerBussiness.GetAuctionSingle(num);
                if (auctionSingle == null)
                {
                    translateId = "AuctionUpdateHandler.Msg1";
                }
                else
                {
                    if (auctionSingle.PayType == 0 && num2 > client.Player.PlayerCharacter.Gold)
                    {
                        translateId = "AuctionUpdateHandler.Msg2";
                    }
                    else
                    {
                        if (auctionSingle.PayType == 1 && num2 > client.Player.PlayerCharacter.Money)
                        {
                            translateId = "AuctionUpdateHandler.Msg3";
                        }
                        else
                        {
                            if (auctionSingle.BuyerID == 0 && auctionSingle.Price > num2)
                            {
                                translateId = "AuctionUpdateHandler.Msg4";
                            }
                            else
                            {
                                if (auctionSingle.BuyerID != 0 && auctionSingle.Price + auctionSingle.Rise > num2 && (auctionSingle.Mouthful == 0 || auctionSingle.Mouthful > num2))
                                {
                                    translateId = "AuctionUpdateHandler.Msg5";
                                }
                                else
                                {
                                    int buyerID = auctionSingle.BuyerID;
                                    auctionSingle.BuyerID   = client.Player.PlayerCharacter.ID;
                                    auctionSingle.BuyerName = client.Player.PlayerCharacter.NickName;
                                    auctionSingle.Price     = num2;
                                    if (auctionSingle.Mouthful != 0 && num2 >= auctionSingle.Mouthful)
                                    {
                                        auctionSingle.Price   = auctionSingle.Mouthful;
                                        auctionSingle.IsExist = false;
                                    }
                                    if (playerBussiness.UpdateAuction(auctionSingle))
                                    {
                                        if (auctionSingle.PayType == 0)
                                        {
                                            client.Player.RemoveGold(auctionSingle.Price);
                                        }
                                        else
                                        {
                                            client.Player.RemoveMoney(auctionSingle.Price);
                                            LogMgr.LogMoneyAdd(LogMoneyType.Auction, LogMoneyType.Auction_Update, client.Player.PlayerCharacter.ID, auctionSingle.Price, client.Player.PlayerCharacter.Money, 0, 0, 0, 0, "", "", "");
                                        }
                                        if (auctionSingle.IsExist)
                                        {
                                            translateId = "AuctionUpdateHandler.Msg6";
                                        }
                                        else
                                        {
                                            translateId = "AuctionUpdateHandler.Msg7";
                                            client.Out.SendMailResponse(auctionSingle.AuctioneerID, eMailRespose.Receiver);
                                            client.Out.SendMailResponse(auctionSingle.BuyerID, eMailRespose.Receiver);
                                        }
                                        if (buyerID != 0)
                                        {
                                            client.Out.SendMailResponse(buyerID, eMailRespose.Receiver);
                                        }
                                        val = true;
                                    }
                                }
                            }
                        }
                    }
                }
                client.Out.SendAuctionRefresh(auctionSingle, num, auctionSingle != null && auctionSingle.IsExist, null);
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation(translateId, new object[0]));
            }
            gSPacketIn.WriteBoolean(val);
            gSPacketIn.WriteInt(num);
            client.Out.SendTCP(gSPacketIn);
            return(0);
        }