Exemplo n.º 1
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int             num            = 0;
            int             num2           = 0;
            int             num3           = 0;
            int             num4           = 0;
            int             num5           = 0;
            StringBuilder   stringBuilder  = new StringBuilder();
            eMessageType    eMessageType   = eMessageType.Normal;
            string          translateId    = "UserBuyItemHandler.Success";
            GSPacketIn      gSPacketIn     = new GSPacketIn(44);
            List <ItemInfo> list           = new List <ItemInfo>();
            List <bool>     list2          = new List <bool>();
            List <int>      list3          = new List <int>();
            StringBuilder   stringBuilder2 = new StringBuilder();
            bool            flag           = false;
            ConsortiaInfo   consortiaInfo  = ConsortiaMgr.FindConsortiaInfo(client.Player.PlayerCharacter.ConsortiaID);
            int             num6           = packet.ReadInt();

            for (int i = 0; i < num6; i++)
            {
                packet.ReadInt();
                int    iD    = packet.ReadInt();
                int    num7  = packet.ReadInt();
                string text  = packet.ReadString();
                bool   item  = packet.ReadBoolean();
                string text2 = packet.ReadString();
                int    item2 = packet.ReadInt();
                packet.ReadBoolean();
                ShopItemInfo shopItemInfoById = ShopMgr.GetShopItemInfoById(iD);
                if (shopItemInfoById == null)
                {
                    client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("UserBuyItemHandler.FailByPermission", new object[0]));
                    return(1);
                }
                if (!ShopMgr.CanBuy(shopItemInfoById.ShopID, (consortiaInfo == null) ? 1 : consortiaInfo.ShopLevel, ref flag, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.Riches))
                {
                    client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("UserBuyItemHandler.FailByPermission", new object[0]));
                    return(1);
                }
                ItemTemplateInfo goods    = ItemMgr.FindItemTemplate(shopItemInfoById.TemplateID);
                ItemInfo         itemInfo = ItemInfo.CreateFromTemplate(goods, 1, 102);
                if (shopItemInfoById.BuyType == 0)
                {
                    if (1 == num7)
                    {
                        itemInfo.ValidDate = shopItemInfoById.AUnit;
                    }
                    if (2 == num7)
                    {
                        itemInfo.ValidDate = shopItemInfoById.BUnit;
                    }
                    if (3 == num7)
                    {
                        itemInfo.ValidDate = shopItemInfoById.CUnit;
                    }
                }
                else
                {
                    if (1 == num7)
                    {
                        itemInfo.Count = shopItemInfoById.AUnit;
                    }
                    if (2 == num7)
                    {
                        itemInfo.Count = shopItemInfoById.BUnit;
                    }
                    if (3 == num7)
                    {
                        itemInfo.Count = shopItemInfoById.CUnit;
                    }
                }
                if (itemInfo != null || shopItemInfoById != null)
                {
                    itemInfo.Color = ((text == null) ? "" : text);
                    itemInfo.Skin  = ((text2 == null) ? "" : text2);
                    if (flag)
                    {
                        itemInfo.IsBinds = true;
                    }
                    else
                    {
                        itemInfo.IsBinds = Convert.ToBoolean(shopItemInfoById.IsBind);
                    }
                    stringBuilder2.Append(num7);
                    stringBuilder2.Append(",");
                    list.Add(itemInfo);
                    list2.Add(item);
                    list3.Add(item2);
                    ItemInfo.SetItemType(shopItemInfoById, num7, ref num, ref num2, ref num3, ref num4, ref num5);
                }
            }
            int val = packet.ReadInt();

            if (list.Count == 0)
            {
                return(1);
            }
            if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0]));
                return(1);
            }
            bool flag2 = false;
            int  num8  = 0;

            if (num <= client.Player.PlayerCharacter.Gold && num2 <= client.Player.PlayerCharacter.Money && num3 <= client.Player.PlayerCharacter.Offer && num4 <= client.Player.PlayerCharacter.GiftToken)
            {
                num8++;
                client.Player.AddExpVip(num2);
                client.Player.RemoveMoney(num2);
                client.Player.RemoveGold(num);
                client.Player.RemoveOffer(num3);
                client.Player.RemoveGiftToken(num4);
                string        text3          = "";
                int           num9           = 0;
                MailInfo      mailInfo       = new MailInfo();
                StringBuilder stringBuilder3 = new StringBuilder();
                stringBuilder3.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark", new object[0]));
                for (int j = 0; j < list.Count; j++)
                {
                    text3 += ((text3 == "") ? list[j].TemplateID.ToString() : ("," + list[j].TemplateID.ToString()));
                    if (!client.Player.AddTemplate(list[j], list[j].Template.BagType, list[j].Count))
                    {
                        flag2 = true;
                        using (PlayerBussiness playerBussiness = new PlayerBussiness())
                        {
                            list[j].UserID = 0;
                            playerBussiness.AddGoods(list[j]);
                            num9++;
                            stringBuilder3.Append(num9);
                            stringBuilder3.Append("、");
                            stringBuilder3.Append(list[j].Template.Name);
                            stringBuilder3.Append("x");
                            stringBuilder3.Append(list[j].Count);
                            stringBuilder3.Append(";");
                            switch (num9)
                            {
                            case 1:
                                mailInfo.Annex1     = list[j].ItemID.ToString();
                                mailInfo.Annex1Name = list[j].Template.Name;
                                break;

                            case 2:
                                mailInfo.Annex2     = list[j].ItemID.ToString();
                                mailInfo.Annex2Name = list[j].Template.Name;
                                break;

                            case 3:
                                mailInfo.Annex3     = list[j].ItemID.ToString();
                                mailInfo.Annex3Name = list[j].Template.Name;
                                break;

                            case 4:
                                mailInfo.Annex4     = list[j].ItemID.ToString();
                                mailInfo.Annex4Name = list[j].Template.Name;
                                break;

                            case 5:
                                mailInfo.Annex5     = list[j].ItemID.ToString();
                                mailInfo.Annex5Name = list[j].Template.Name;
                                break;
                            }
                            if (num9 == 5)
                            {
                                num9 = 0;
                                mailInfo.AnnexRemark = stringBuilder3.ToString();
                                stringBuilder3.Remove(0, stringBuilder3.Length);
                                stringBuilder3.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark", new object[0]));
                                mailInfo.Content    = LanguageMgr.GetTranslation("UserBuyItemHandler.Title", new object[0]) + mailInfo.Annex1Name + "]";
                                mailInfo.Gold       = 0;
                                mailInfo.Money      = 0;
                                mailInfo.Receiver   = client.Player.PlayerCharacter.NickName;
                                mailInfo.ReceiverID = client.Player.PlayerCharacter.ID;
                                mailInfo.Sender     = mailInfo.Receiver;
                                mailInfo.SenderID   = mailInfo.ReceiverID;
                                mailInfo.Title      = mailInfo.Content;
                                mailInfo.Type       = 8;
                                playerBussiness.SendMail(mailInfo);
                                eMessageType = eMessageType.ERROR;
                                translateId  = "UserBuyItemHandler.Mail";
                                mailInfo.Revert();
                            }
                        }
                    }
                }
                if (num9 > 0)
                {
                    using (PlayerBussiness playerBussiness2 = new PlayerBussiness())
                    {
                        mailInfo.AnnexRemark = stringBuilder3.ToString();
                        mailInfo.Content     = LanguageMgr.GetTranslation("UserBuyItemHandler.Title", new object[0]) + mailInfo.Annex1Name + "]";
                        mailInfo.Gold        = 0;
                        mailInfo.Money       = 0;
                        mailInfo.Receiver    = client.Player.PlayerCharacter.NickName;
                        mailInfo.ReceiverID  = client.Player.PlayerCharacter.ID;
                        mailInfo.Sender      = mailInfo.Receiver;
                        mailInfo.SenderID    = mailInfo.ReceiverID;
                        mailInfo.Title       = mailInfo.Content;
                        mailInfo.Type        = 8;
                        playerBussiness2.SendMail(mailInfo);
                        eMessageType = eMessageType.ERROR;
                        translateId  = "UserBuyItemHandler.Mail";
                    }
                }
                if (eMessageType == eMessageType.ERROR)
                {
                    client.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Receiver);
                }
                client.Player.OnPaid(num2, num, num3, num4, num5, stringBuilder.ToString());
                LogMgr.LogMoneyAdd(LogMoneyType.Shop, LogMoneyType.Shop_Buy, client.Player.PlayerCharacter.ID, num2, client.Player.PlayerCharacter.Money, num, num4, num3, num5, "牌子编号", text3, stringBuilder2.ToString());
            }
            else
            {
                if (num2 > client.Player.PlayerCharacter.Money)
                {
                    translateId = "UserBuyItemHandler.NoMoney";
                }
                if (num > client.Player.PlayerCharacter.Gold)
                {
                    translateId = "UserBuyItemHandler.NoGold";
                }
                if (num3 > client.Player.PlayerCharacter.Offer)
                {
                    translateId = "UserBuyItemHandler.NoOffer";
                }
                if (num4 > client.Player.PlayerCharacter.GiftToken)
                {
                    translateId = "UserBuyItemHandler.GiftToken";
                }
                if (num5 > client.Player.PlayerCharacter.medal)
                {
                    translateId = "UserBuyItemHandler.Medal";
                }
                eMessageType = eMessageType.ERROR;
            }
            int val2 = 0;

            if (num8 == num6)
            {
                val2 = (flag2 ? 2 : 1);
            }
            client.Player.MainBag.SaveToDatabase();
            client.Player.PropBag.SaveToDatabase();
            gSPacketIn.WriteInt(val2);
            gSPacketIn.WriteInt(val);
            client.Out.SendMessage(eMessageType, LanguageMgr.GetTranslation(translateId, new object[0]));
            client.Out.SendTCP(gSPacketIn);
            return(0);
        }
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int             num                    = 0;
            int             num2                   = 0;
            int             offer                  = 0;
            int             num3                   = 0;
            int             medal                  = 0;
            StringBuilder   stringBuilder          = new StringBuilder();
            eMessageType    eMessageType           = eMessageType.Normal;
            string          translateId            = "UserPresentGoodsHandler.Success";
            string          str                    = packet.ReadString();
            string          nickName               = packet.ReadString();
            int             num4                   = packet.ReadInt();
            List <ItemInfo> list                   = new List <ItemInfo>();
            StringBuilder   stringBuilder2         = new StringBuilder();
            GamePlayer      clientByPlayerNickName = WorldMgr.GetClientByPlayerNickName(nickName);
            PlayerInfo      playerInfo;

            if (clientByPlayerNickName == null)
            {
                using (PlayerBussiness playerBussiness = new PlayerBussiness())
                {
                    playerInfo = playerBussiness.GetUserSingleByNickName(nickName);
                    goto IL_78;
                }
            }
            playerInfo = clientByPlayerNickName.PlayerCharacter;
IL_78:
            bool flag = false;

            for (int i = 0; i < num4; i++)
            {
                int    iD    = packet.ReadInt();
                int    num5  = packet.ReadInt();
                string text  = packet.ReadString();
                string text2 = packet.ReadString();
                packet.ReadInt();
                ShopItemInfo     shopItemInfoById = ShopMgr.GetShopItemInfoById(iD);
                ItemTemplateInfo goods            = ItemMgr.FindItemTemplate(shopItemInfoById.TemplateID);
                ItemInfo         itemInfo         = ItemInfo.CreateFromTemplate(goods, 1, 102);
                if (shopItemInfoById.BuyType == 0)
                {
                    if (1 == num5)
                    {
                        itemInfo.ValidDate = shopItemInfoById.AUnit;
                    }
                    if (2 == num5)
                    {
                        itemInfo.ValidDate = shopItemInfoById.BUnit;
                    }
                    if (3 == num5)
                    {
                        itemInfo.ValidDate = shopItemInfoById.CUnit;
                    }
                }
                else
                {
                    if (1 == num5)
                    {
                        itemInfo.Count = shopItemInfoById.AUnit;
                    }
                    if (2 == num5)
                    {
                        itemInfo.Count = shopItemInfoById.BUnit;
                    }
                    if (3 == num5)
                    {
                        itemInfo.Count = shopItemInfoById.CUnit;
                    }
                }
                if (itemInfo != null || shopItemInfoById != null)
                {
                    itemInfo.Color = ((text == null) ? "" : text);
                    itemInfo.Skin  = ((text2 == null) ? "" : text2);
                    if (flag)
                    {
                        itemInfo.IsBinds = true;
                    }
                    else
                    {
                        itemInfo.IsBinds = Convert.ToBoolean(shopItemInfoById.IsBind);
                    }
                    stringBuilder2.Append(num5);
                    stringBuilder2.Append(",");
                    list.Add(itemInfo);
                    ItemInfo.SetItemType(shopItemInfoById, num5, ref num, ref num2, ref offer, ref num3, ref medal);
                }
            }
            if (list.Count == 0)
            {
                return(1);
            }
            if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0]));
                return(1);
            }
            if (num <= client.Player.PlayerCharacter.Gold && num2 <= client.Player.PlayerCharacter.Money && num3 <= client.Player.PlayerCharacter.GiftToken)
            {
                client.Player.RemoveMoney(num2);
                client.Player.RemoveGold(num);
                client.Player.RemoveGiftToken(num3);
                string        text3          = "";
                int           num6           = 0;
                MailInfo      mailInfo       = new MailInfo();
                StringBuilder stringBuilder3 = new StringBuilder();
                stringBuilder3.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark", new object[0]));
                for (int j = 0; j < list.Count; j++)
                {
                    text3 += ((text3 == "") ? list[j].TemplateID.ToString() : ("," + list[j].TemplateID.ToString()));
                    using (PlayerBussiness playerBussiness2 = new PlayerBussiness())
                    {
                        list[j].UserID = 0;
                        playerBussiness2.AddGoods(list[j]);
                        num6++;
                        stringBuilder3.Append(num6);
                        stringBuilder3.Append("、");
                        stringBuilder3.Append(list[j].Template.Name);
                        stringBuilder3.Append("x");
                        stringBuilder3.Append(list[j].Count);
                        stringBuilder3.Append(";");
                        switch (num6)
                        {
                        case 1:
                            mailInfo.Annex1     = list[j].ItemID.ToString();
                            mailInfo.Annex1Name = list[j].Template.Name;
                            break;

                        case 2:
                            mailInfo.Annex2     = list[j].ItemID.ToString();
                            mailInfo.Annex2Name = list[j].Template.Name;
                            break;

                        case 3:
                            mailInfo.Annex3     = list[j].ItemID.ToString();
                            mailInfo.Annex3Name = list[j].Template.Name;
                            break;

                        case 4:
                            mailInfo.Annex4     = list[j].ItemID.ToString();
                            mailInfo.Annex4Name = list[j].Template.Name;
                            break;

                        case 5:
                            mailInfo.Annex5     = list[j].ItemID.ToString();
                            mailInfo.Annex5Name = list[j].Template.Name;
                            break;
                        }
                        if (num6 == 5)
                        {
                            num6 = 0;
                            mailInfo.AnnexRemark = stringBuilder3.ToString();
                            stringBuilder3.Remove(0, stringBuilder3.Length);
                            stringBuilder3.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark", new object[0]));
                            mailInfo.Content    = LanguageMgr.GetTranslation("UserBuyItemHandler.Title", new object[0]) + mailInfo.Annex1Name + "] " + str;
                            mailInfo.Gold       = 0;
                            mailInfo.Money      = 0;
                            mailInfo.Receiver   = playerInfo.NickName;
                            mailInfo.ReceiverID = playerInfo.ID;
                            mailInfo.Sender     = client.Player.PlayerCharacter.NickName;
                            mailInfo.SenderID   = client.Player.PlayerCharacter.ID;
                            mailInfo.Title      = mailInfo.Content;
                            mailInfo.Type       = 8;
                            playerBussiness2.SendMail(mailInfo);
                            eMessageType = eMessageType.ERROR;
                            mailInfo.Revert();
                        }
                    }
                }
                if (num6 > 0)
                {
                    using (PlayerBussiness playerBussiness3 = new PlayerBussiness())
                    {
                        mailInfo.AnnexRemark = stringBuilder3.ToString();
                        mailInfo.Content     = LanguageMgr.GetTranslation("UserBuyItemHandler.Title", new object[0]) + mailInfo.Annex1Name + "] " + str;
                        mailInfo.Gold        = 0;
                        mailInfo.Money       = 0;
                        mailInfo.Receiver    = playerInfo.NickName;
                        mailInfo.ReceiverID  = playerInfo.ID;
                        mailInfo.Sender      = client.Player.PlayerCharacter.NickName;
                        mailInfo.SenderID    = client.Player.PlayerCharacter.ID;
                        mailInfo.Title       = mailInfo.Content;
                        mailInfo.Type        = 8;
                        playerBussiness3.SendMail(mailInfo);
                        eMessageType = eMessageType.ERROR;
                    }
                }
                if (eMessageType == eMessageType.ERROR && clientByPlayerNickName != null)
                {
                    clientByPlayerNickName.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Receiver);
                }
                client.Player.OnPaid(num2, num, offer, num3, medal, stringBuilder.ToString());
                LogMgr.LogMoneyAdd(LogMoneyType.Shop, LogMoneyType.Shop_Buy, client.Player.PlayerCharacter.ID, num2, client.Player.PlayerCharacter.Money, num, num3, offer, medal, "牌子编号", text3, stringBuilder2.ToString());
            }
            else
            {
                if (num > client.Player.PlayerCharacter.Gold)
                {
                    translateId = "UserBuyItemHandler.NoGold";
                }
                if (num2 > client.Player.PlayerCharacter.Money)
                {
                    translateId = "UserBuyItemHandler.NoMoney";
                }
                if (num3 > client.Player.PlayerCharacter.GiftToken)
                {
                    translateId = "UserBuyItemHandler.GiftToken";
                }
                eMessageType = eMessageType.ERROR;
            }
            client.Out.SendMessage(eMessageType, LanguageMgr.GetTranslation(translateId, new object[0]));
            return(0);
        }
Exemplo n.º 3
0
        public override int HandlePacket(GamePlayer player, GSPacketIn packet)
        {
            int                   totalMoney         = 0;
            eMessageType          eMsg               = eMessageType.Normal;
            string                msg                = "GoodsPresentHandler.Success";
            GSPacketIn            pkg                = new GSPacketIn(57);
            string                content            = packet.ReadString();
            string                nickName           = packet.ReadString();
            List <ItemInfo>       buyItems           = new List <ItemInfo>();
            List <ItemInfo>       canNotBuyItems     = new List <ItemInfo>();
            Dictionary <int, int> changeLimitShopsID = new Dictionary <int, int>();
            StringBuilder         allItemsStr        = new StringBuilder();
            StringBuilder         allTypesStr        = new StringBuilder();
            bool                  buyResult          = false;
            int                   result;

            if (player.PlayerCharacter.HasBagPassword && player.PlayerCharacter.IsLocked)
            {
                player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0]));
                result = 0;
            }
            else
            {
                using (PlayerBussiness db = new PlayerBussiness())
                {
                    PlayerInfo receiver = db.GetUserSingleByNickName(nickName);
                    if (receiver != null)
                    {
                        int count = packet.ReadInt();
                        for (int i = 0; i < count; i++)
                        {
                            int          goodsId   = packet.ReadInt();
                            int          type      = packet.ReadInt();
                            string       color     = packet.ReadString();
                            string       skin      = packet.ReadString();
                            int          gold      = 0;
                            int          money     = 0;
                            int          offer     = 0;
                            int          gifttoken = 0;
                            ShopItemInfo shopItem  = ShopMgr.GetShopItemInfoById(goodsId);
                            if (shopItem != null && shopItem.ShopID != 21 && shopItem.ShopID != 22)
                            {
                                List <int> tempInfo = ShopMgr.GetShopItemBuyConditions(shopItem, type, ref gold, ref money, ref offer, ref gifttoken);
                                if (gold <= 0 && offer <= 0 && gifttoken <= 0 && tempInfo.Count <= 0)
                                {
                                    ItemInfo item       = ShopMgr.CreateItem(shopItem, 102, type, color, skin, false);
                                    int      limitCount = ShopMgr.GetLimitCountByID(goodsId);
                                    if (limitCount == -1 || limitCount > 0)
                                    {
                                        if (player.PlayerCharacter.Money >= money + totalMoney)
                                        {
                                            totalMoney += money;
                                            allTypesStr.Append(type).Append(",");
                                            allItemsStr.Append(item.TemplateID).Append(",");
                                            buyItems.Add(item);
                                            if (limitCount != -1)
                                            {
                                                ShopMgr.SubtractShopLimit(goodsId);
                                                this.Notice(player, goodsId, item.Template.Name);
                                                if (!changeLimitShopsID.ContainsKey(goodsId))
                                                {
                                                    changeLimitShopsID.Add(goodsId, ShopMgr.GetLimitCountByID(goodsId));
                                                }
                                                else
                                                {
                                                    changeLimitShopsID[goodsId] = ShopMgr.GetLimitCountByID(goodsId);
                                                }
                                            }
                                            //LogMgr.LogMoneyAdd(LogMoneyType.Shop, LogMoneyType.Shop_Present, player.PlayerCharacter.ID, money, gold, gifttoken, offer, "", item.TemplateID, 2, item.Count);
                                        }
                                        else
                                        {
                                            canNotBuyItems.Add(item);
                                        }
                                    }
                                }
                            }
                        }
                        if (buyItems.Count == 0)
                        {
                            player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("UserBuyItemHandler.Failed", new object[0]));
                            result = 1;
                            return(result);
                        }
                        player.RemoveMoney(totalMoney, LogMoneyType.Shop, LogMoneyType.Shop_Present);
                        int           annexIndex  = 0;
                        MailInfo      message     = new MailInfo();
                        StringBuilder annexRemark = new StringBuilder();
                        annexRemark.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark", new object[0]));
                        player.StackItem(ref buyItems);
                        player.OnPlayerGoodsPresent(buyItems.Count);
                        foreach (ItemInfo item in buyItems)
                        {
                            //	ItemInfo item;
                            db.AddGoods(item);
                            annexIndex++;
                            annexRemark.Append(annexIndex);
                            annexRemark.Append("、");
                            annexRemark.Append(item.Template.Name);
                            annexRemark.Append("x");
                            annexRemark.Append(item.Count);
                            annexRemark.Append(";");
                            switch (annexIndex)
                            {
                            case 1:
                                message.Annex1     = item.ItemID.ToString();
                                message.Annex1Name = item.Template.Name;
                                break;

                            case 2:
                                message.Annex2     = item.ItemID.ToString();
                                message.Annex2Name = item.Template.Name;
                                break;

                            case 3:
                                message.Annex3     = item.ItemID.ToString();
                                message.Annex3Name = item.Template.Name;
                                break;

                            case 4:
                                message.Annex4     = item.ItemID.ToString();
                                message.Annex4Name = item.Template.Name;
                                break;

                            case 5:
                                message.Annex5     = item.ItemID.ToString();
                                message.Annex5Name = item.Template.Name;
                                break;
                            }
                            if (annexIndex == 5)
                            {
                                annexIndex          = 0;
                                message.AnnexRemark = annexRemark.ToString();
                                annexRemark.Remove(0, annexRemark.Length);
                                annexRemark.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark", new object[0]));
                                message.Content    = content;
                                message.Gold       = 0;
                                message.Money      = 0;
                                message.GiftToken  = 0;
                                message.Receiver   = receiver.NickName;
                                message.ReceiverID = receiver.ID;
                                message.Sender     = player.PlayerCharacter.NickName;
                                message.SenderID   = player.PlayerCharacter.ID;
                                message.Title      = message.Sender + LanguageMgr.GetTranslation("GoodsPresentHandler.Content", new object[0]) + message.Annex1Name + "]";
                                message.Type       = 10;
                                db.SendMail(message);
                                message.Revert();
                            }
                        }
                        if (annexIndex > 0)
                        {
                            message.AnnexRemark = annexRemark.ToString();
                            message.Content     = content;
                            message.Gold        = 0;
                            message.Money       = 0;
                            message.GiftToken   = 0;
                            message.Receiver    = receiver.NickName;
                            message.ReceiverID  = receiver.ID;
                            message.Sender      = player.PlayerCharacter.NickName;
                            message.SenderID    = player.PlayerCharacter.ID;
                            message.Title       = message.Sender + LanguageMgr.GetTranslation("GoodsPresentHandler.Content", new object[0]) + message.Annex1Name + "]";
                            message.Type        = 10;
                            db.SendMail(message);
                            message.Revert();
                        }
                        if (canNotBuyItems.Count > 0)
                        {
                            string        title   = LanguageMgr.GetTranslation("UserBuyItemHandler.ListTitle", new object[0]);
                            StringBuilder Content = new StringBuilder();
                            if (buyItems.Count > 0)
                            {
                                Content.Append(LanguageMgr.GetTranslation("UserBuyItemHandler.BuyList", new object[]
                                {
                                    buyItems.Count
                                }));
                                for (int i = 0; i < buyItems.Count; i++)
                                {
                                    Content.Append(string.Format("{0}{1}", (i == 0) ? "" : ";", buyItems[i].Template.Name));
                                }
                            }
                            if (canNotBuyItems.Count > 0)
                            {
                                Content.Append(LanguageMgr.GetTranslation("UserBuyItemHandler.NoBuyList", new object[]
                                {
                                    "\n"
                                }));
                                for (int j = 0; j < canNotBuyItems.Count; j++)
                                {
                                    Content.Append(string.Format("{0}{1}", (j == 0) ? "" : ";", canNotBuyItems[j].Template.Name));
                                }
                            }
                            if (player.SendMail(Content.ToString(), title, null, eMailType.BuyItem))
                            {
                                player.Out.SendMailResponse(player.PlayerCharacter.ID, eMailRespose.Receiver);
                            }
                        }
                        player.OnPaid(totalMoney, 0, 0, 0, "");
                        player.Out.SendMailResponse(receiver.ID, eMailRespose.Receiver);
                        player.Out.SendMailResponse(player.PlayerCharacter.ID, eMailRespose.Send);
                        buyResult = (buyItems.Count == count);
                    }
                    else
                    {
                        buyResult = false;
                        eMsg      = eMessageType.ERROR;
                        msg       = "GoodsPresentHandler.NoUser";
                    }
                }

                this.UpdateLimitShopCount(player, changeLimitShopsID);

                pkg.WriteBoolean(buyResult);
                player.Out.SendMessage(eMsg, LanguageMgr.GetTranslation(msg, new object[0]));
                player.Out.SendTCP(pkg);
                result = 0;
            }
            return(result);
        }
Exemplo n.º 4
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int           gold      = 0;                   //表示金币
            int           money     = 0;                   //表示点券
            int           offer     = 0;                   //表示功勋
            int           gifttoken = 0;                   //表示礼劵
            StringBuilder payGoods  = new StringBuilder(); //表示支付物品ID
            eMessageType  eMsg      = eMessageType.Normal;
            string        msg       = "GoodsPresentHandler.Success";

            string     content       = packet.ReadString(); //赠送人留言
            string     nickName      = packet.ReadString(); //购买人昵称
            List <int> needitemsinfo = new List <int>();    //存放兑换物品的templateID,Count

            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())
            {
                PlayerInfo receiver = db.GetUserSingleByNickName(nickName);
                if (receiver != null)
                {
                    List <ItemInfo> items = new List <ItemInfo>();
                    StringBuilder   types = new StringBuilder();

                    int count = packet.ReadInt();
                    for (int i = 0; i < count; i++)
                    {
                        int    GoodsID = packet.ReadInt();                                               //序号
                        int    type    = packet.ReadInt();                                               //购买方式
                        string color   = packet.ReadString();                                            //颜色
                        string skin    = packet.ReadString();                                            //皮肤

                        ShopItemInfo shopItem = Bussiness.Managers.ShopMgr.GetShopItemInfoById(GoodsID); //获取商品信息

                        if (shopItem == null)                                                            //商品不存在
                        {
                            continue;
                        }


                        ItemTemplateInfo goods = Bussiness.Managers.ItemMgr.FindItemTemplate(shopItem.TemplateID);              //查找物品属性
                        ItemInfo         item  = ItemInfo.CreateFromTemplate(goods, 1, (int)ItemAddType.Gift);                  //构建物品临时属性

                        if (item == null)
                        {
                            continue;
                        }

                        //未开始
                        //if (shopitem.AValue1 <= 0 || shopitem.Beat <= 0)
                        //    continue;

                        item.Color = color == null ? "" : color;
                        item.Skin  = skin == null ? "" : skin;

                        if (item == null)
                        {
                            continue;
                        }

                        types.Append(type);
                        types.Append(",");
                        items.Add(item);

                        needitemsinfo = ItemInfo.SetItemType(shopItem, type, ref gold, ref money, ref offer, ref gifttoken);
                    }

                    if (items.Count == 0)
                    {
                        return(1);
                    }


                    //////////////////////////////////////////////////////////////////////////////////////
                    //玩家背包中是否有兑换物品所需要的物品
                    int  icount = client.Player.MainBag.GetItems().Count;      //获取个数
                    bool result = true;
                    for (int j = 0; j < needitemsinfo.Count; j += 2)
                    {
                        if (client.Player.GetItemCount(needitemsinfo[j]) < needitemsinfo[j + 1])
                        {
                            result = false;
                        }
                    }

                    if (!result)
                    {
                        eMsg = eMessageType.ERROR;
                        msg  = "UserBuyItemHandler.NoBuyItem";
                        return(1);
                    }
                    /////////////////////////////////////////////////////////////

                    if (gold <= client.Player.PlayerCharacter.Gold && money <= client.Player.PlayerCharacter.Money && offer <= client.Player.PlayerCharacter.Offer && gifttoken <= client.Player.PlayerCharacter.GiftToken)
                    {
                        types.Remove(types.Length - 1, 1);
                        client.Player.RemoveMoney(money);
                        client.Player.RemoveGold(gold);
                        client.Player.RemoveOffer(offer);
                        client.Player.RemoveGiftToken(gifttoken);
                        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //从玩家背包中删除兑换所需要的物品
                        for (int j = 0; j < needitemsinfo.Count; j += 2)
                        {
                            client.Player.RemoveTemplate(needitemsinfo[j], needitemsinfo[j + 1]);
                            payGoods.Append(needitemsinfo[j].ToString() + ":");
                        }
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////


                        string        itemIDs     = "";
                        int           annexIndex  = 0;
                        MailInfo      message     = new MailInfo();
                        StringBuilder annexRemark = new StringBuilder();
                        annexRemark.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark"));

                        foreach (ItemInfo item in items)
                        {
                            itemIDs    += (itemIDs == "" ? item.TemplateID.ToString() : "," + item.TemplateID.ToString());
                            item.UserID = 0;
                            db.AddGoods(item);

                            annexIndex++;
                            annexRemark.Append(annexIndex);
                            annexRemark.Append("、");
                            annexRemark.Append(item.Template.Name);
                            annexRemark.Append("x");
                            annexRemark.Append(item.Count);
                            annexRemark.Append(";");

                            switch (annexIndex)
                            {
                            case 1:
                                message.Annex1     = item.ItemID.ToString();
                                message.Annex1Name = item.Template.Name;
                                break;

                            case 2:
                                message.Annex2     = item.ItemID.ToString();
                                message.Annex2Name = item.Template.Name;
                                break;

                            case 3:
                                message.Annex3     = item.ItemID.ToString();
                                message.Annex3Name = item.Template.Name;
                                break;

                            case 4:
                                message.Annex4     = item.ItemID.ToString();
                                message.Annex4Name = item.Template.Name;
                                break;

                            case 5:
                                message.Annex5     = item.ItemID.ToString();
                                message.Annex5Name = item.Template.Name;
                                break;
                            }

                            if (annexIndex == 5)
                            {
                                annexIndex          = 0;
                                message.AnnexRemark = annexRemark.ToString();
                                annexRemark.Remove(0, annexRemark.Length);
                                annexRemark.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark"));
                                message.Content    = content;
                                message.Gold       = 0;
                                message.Money      = 0;
                                message.Receiver   = receiver.NickName;
                                message.ReceiverID = receiver.ID;
                                message.Sender     = client.Player.PlayerCharacter.NickName;
                                message.SenderID   = client.Player.PlayerCharacter.ID;
                                message.Title      = message.Sender + LanguageMgr.GetTranslation("GoodsPresentHandler.Content") + message.Annex1Name + "]";
                                message.Type       = (int)eMailType.PresentItem;
                                db.SendMail(message);

                                message.Revert();
                            }
                        }

                        if (annexIndex > 0)
                        {
                            message.AnnexRemark = annexRemark.ToString();
                            message.Content     = content;
                            message.Gold        = 0;
                            message.Money       = 0;
                            message.Receiver    = receiver.NickName;
                            message.ReceiverID  = receiver.ID;
                            message.Sender      = client.Player.PlayerCharacter.NickName;
                            message.SenderID    = client.Player.PlayerCharacter.ID;
                            message.Title       = message.Sender + LanguageMgr.GetTranslation("GoodsPresentHandler.Content") + message.Annex1Name + "]";
                            message.Type        = (int)eMailType.PresentItem;
                            db.SendMail(message);
                        }
                        LogMgr.LogMoneyAdd(LogMoneyType.Shop, LogMoneyType.Shop_Present, client.Player.PlayerCharacter.ID, money, client.Player.PlayerCharacter.Money, gold, gifttoken, offer, payGoods.ToString(), itemIDs, types.ToString());
                        client.Out.SendMailResponse(receiver.ID, eMailRespose.Receiver);
                        client.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Send);
                    }
                    else
                    {
                        eMsg = eMessageType.ERROR;
                        msg  = "GoodsPresentHandler.NoMoney";
                    }
                }
                else
                {
                    eMsg = eMessageType.ERROR;
                    msg  = "GoodsPresentHandler.NoUser";
                }
            }
            client.Out.SendMessage(eMsg, LanguageMgr.GetTranslation(msg));
            return(0);
        }
Exemplo n.º 5
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (countConnect >= 3000)
            {
                client.Disconnect(); return(0);
            }


            int           gold      = 0;                   //表示金币
            int           money     = 0;                   //表示点券
            int           offer     = 0;                   //表示功勋
            int           gifttoken = 0;                   //表示礼劵
            int           medal     = 0;
            StringBuilder payGoods  = new StringBuilder(); //表示支付物品ID
            eMessageType  eMsg      = eMessageType.Normal;
            string        msg       = "UserBuyItemHandler.Success";

            List <ItemInfo> buyitems = new List <ItemInfo>();                  //购买物品列表
            //List<int> needitemsinfo = new List<int>();                       //购买所需物品列表
            List <bool>   dresses = new List <bool>();
            List <int>    places  = new List <int>();
            StringBuilder types   = new StringBuilder();

            bool          isBind   = false;
            ConsortiaInfo consotia = ConsortiaMgr.FindConsortiaInfo(client.Player.PlayerCharacter.ConsortiaID);


            int count = packet.ReadInt();

            for (int i = 0; i < count; i++)
            {
                int    buyFrom = packet.ReadInt();
                int    GoodsID = packet.ReadInt();
                int    type    = packet.ReadInt();
                string color   = packet.ReadString();
                bool   dress   = packet.ReadBoolean();
                string skin    = packet.ReadString();
                int    place   = packet.ReadInt();

                //这里开始处理公会商店
                ShopItemInfo shopItem = Bussiness.Managers.ShopMgr.GetShopItemInfoById(GoodsID);                   //获取商品信息
                //if (shopItem.ShopID == 2 || !Bussiness.Managers.ShopMgr.CanBuy(shopItem.ShopID, consotia == null ? 1 : consotia.ShopLevel, ref isBind, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.Riches))
                if (!Bussiness.Managers.ShopMgr.CanBuy(shopItem.ShopID, consotia == null ? 1 : consotia.ShopLevel, ref isBind, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.Riches))
                {
                    client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("UserBuyItemHandler.FailByPermission"));
                    return(1);
                }

                //if (shopItem == null)
                //{
                //    continue;
                //}

                ItemTemplateInfo goods = Bussiness.Managers.ItemMgr.FindItemTemplate(shopItem.TemplateID);              //获取物品属性

                ItemInfo item = ItemInfo.CreateFromTemplate(goods, 1, (int)ItemAddType.Buy);                            //创建物品模板

                ////////////////////////////////////////////////////////////////////////////////////////////////////
                //判断有限期
                if (0 == shopItem.BuyType)                              //时间购买类型
                {
                    if (1 == type)
                    {
                        item.ValidDate = shopItem.AUnit;
                    }
                    if (2 == type)
                    {
                        item.ValidDate = shopItem.BUnit;
                    }
                    if (3 == type)
                    {
                        item.ValidDate = shopItem.CUnit;
                    }
                }
                else                                                  //数量购买类型
                {
                    if (1 == type)
                    {
                        item.Count = shopItem.AUnit;
                    }
                    if (2 == type)
                    {
                        item.Count = shopItem.BUnit;
                    }
                    if (3 == type)
                    {
                        item.Count = shopItem.CUnit;
                    }
                }
                ////////////////////////////////////////////////////////////////////////////////////////////////////////

                if (item == null && shopItem == null)
                {
                    continue;
                }
                item.Color = color == null ? "" : color;
                item.Skin  = skin == null ? "" : skin;
                if (isBind == true)
                {
                    item.IsBinds = true;
                }
                else
                {
                    item.IsBinds = Convert.ToBoolean(shopItem.IsBind);
                }

                types.Append(type);
                types.Append(",");
                buyitems.Add(item);
                dresses.Add(dress);
                places.Add(place);

                ItemInfo.SetItemType(shopItem, type, ref gold, ref money, ref offer, ref gifttoken, ref medal);
            }

            if (buyitems.Count == 0)
            {
                return(1);
            }
            if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked"));
                return(1);
            }



            //判断金币或礼券等是否足够
            if (gold <= client.Player.PlayerCharacter.Gold &&
                money <= client.Player.PlayerCharacter.Money &&
                offer <= client.Player.PlayerCharacter.Offer &&
                gifttoken <= client.Player.PlayerCharacter.GiftToken)// &&
            //medal <= client.Player.PlayerCharacter.medal)
            {
                client.Player.RemoveMoney(money);
                client.Player.RemoveGold(gold);
                client.Player.RemoveOffer(offer);
                client.Player.RemoveGiftToken(gifttoken);
                //client.Player.RemoveMedal(medal);

                string        itemIDs     = "";
                int           annexIndex  = 0;
                MailInfo      message     = new MailInfo();
                StringBuilder annexRemark = new StringBuilder();
                annexRemark.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark"));

                for (int i = 0; i < buyitems.Count; i++)
                {
                    itemIDs += (itemIDs == "" ? buyitems[i].TemplateID.ToString() : "," + buyitems[i].TemplateID.ToString());
                    if (client.Player.AddTemplate(buyitems[i], buyitems[i].Template.BagType, buyitems[i].Count))
                    {
                        if (dresses[i] && buyitems[i].CanEquip())
                        {
                            int slot = client.Player.MainBag.FindItemEpuipSlot(buyitems[i].Template);
                            if ((slot == 9 || slot == 10) && (places[i] == 9 || places[i] == 10))
                            {
                                slot = places[i];
                            }
                            else if ((slot == 7 || slot == 8) && (places[i] == 7 || places[i] == 8))
                            {
                                slot = places[i];
                            }

                            client.Player.MainBag.MoveItem(buyitems[i].Place, slot, 0);
                            msg = "UserBuyItemHandler.Save";
                        }
                    }
                    else
                    {
                        using (PlayerBussiness db = new PlayerBussiness())
                        {
                            buyitems[i].UserID = 0;
                            db.AddGoods(buyitems[i]);

                            annexIndex++;
                            annexRemark.Append(annexIndex);
                            annexRemark.Append("、");
                            annexRemark.Append(buyitems[i].Template.Name);
                            annexRemark.Append("x");
                            annexRemark.Append(buyitems[i].Count);
                            annexRemark.Append(";");
                            switch (annexIndex)
                            {
                            case 1:
                                message.Annex1     = buyitems[i].ItemID.ToString();
                                message.Annex1Name = buyitems[i].Template.Name;
                                break;

                            case 2:
                                message.Annex2     = buyitems[i].ItemID.ToString();
                                message.Annex2Name = buyitems[i].Template.Name;
                                break;

                            case 3:
                                message.Annex3     = buyitems[i].ItemID.ToString();
                                message.Annex3Name = buyitems[i].Template.Name;
                                break;

                            case 4:
                                message.Annex4     = buyitems[i].ItemID.ToString();
                                message.Annex4Name = buyitems[i].Template.Name;
                                break;

                            case 5:
                                message.Annex5     = buyitems[i].ItemID.ToString();
                                message.Annex5Name = buyitems[i].Template.Name;
                                break;
                            }

                            if (annexIndex == 5)
                            {
                                annexIndex          = 0;
                                message.AnnexRemark = annexRemark.ToString();
                                annexRemark.Remove(0, annexRemark.Length);
                                annexRemark.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark"));

                                message.Content    = LanguageMgr.GetTranslation("UserBuyItemHandler.Title") + message.Annex1Name + "]";
                                message.Gold       = 0;
                                message.Money      = 0;
                                message.Receiver   = client.Player.PlayerCharacter.NickName;
                                message.ReceiverID = client.Player.PlayerCharacter.ID;
                                message.Sender     = message.Receiver;
                                message.SenderID   = message.ReceiverID;
                                message.Title      = message.Content;
                                message.Type       = (int)eMailType.BuyItem;
                                db.SendMail(message);

                                eMsg = eMessageType.ERROR;
                                msg  = "UserBuyItemHandler.Mail";

                                message.Revert();
                            }
                        }
                    }
                }

                if (annexIndex > 0)
                {
                    using (PlayerBussiness db = new PlayerBussiness())
                    {
                        message.AnnexRemark = annexRemark.ToString();
                        message.Content     = LanguageMgr.GetTranslation("UserBuyItemHandler.Title") + message.Annex1Name + "]";
                        message.Gold        = 0;
                        message.Money       = 0;
                        message.Receiver    = client.Player.PlayerCharacter.NickName;
                        message.ReceiverID  = client.Player.PlayerCharacter.ID;
                        message.Sender      = message.Receiver;
                        message.SenderID    = message.ReceiverID;
                        message.Title       = message.Content;
                        message.Type        = (int)eMailType.BuyItem;
                        db.SendMail(message);

                        eMsg = eMessageType.ERROR;
                        msg  = "UserBuyItemHandler.Mail";
                    }
                }

                if (eMsg == eMessageType.ERROR)
                {
                    client.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Receiver);
                }

                client.Player.OnPaid(money, gold, offer, gifttoken, medal, payGoods.ToString());//触发任务事件


                LogMgr.LogMoneyAdd(LogMoneyType.Shop, LogMoneyType.Shop_Buy, client.Player.PlayerCharacter.ID, money, client.Player.PlayerCharacter.Money, gold, gifttoken, offer, medal, "牌子编号", itemIDs, types.ToString());
            }
            else
            {
                if (gold > client.Player.PlayerCharacter.Gold)
                {
                    msg = "UserBuyItemHandler.NoGold";
                }
                if (offer > client.Player.PlayerCharacter.Offer)
                {
                    msg = "UserBuyItemHandler.NoOffer";
                }
                if (gifttoken > client.Player.PlayerCharacter.GiftToken)
                {
                    msg = "UserBuyItemHandler.GiftToken";
                }
                if (medal > client.Player.PlayerCharacter.medal)
                {
                    msg = "UserBuyItemHandler.Medal";
                }
                eMsg = eMessageType.ERROR;
            }

            client.Out.SendMessage(eMsg, LanguageMgr.GetTranslation(msg));
            return(0);
        }
Exemplo n.º 6
0
        public void SendStoreToMail()
        {
            if (_player.PlayerCharacter.ConsortiaID != 0)
            {
                return;
            }

            bool          response    = false;
            int           annexIndex  = 0;
            MailInfo      message     = new MailInfo();
            StringBuilder annexRemark = new StringBuilder();

            annexRemark.Append(LanguageMgr.GetTranslation("Game.Server.GameUtils.CommonBag.AnnexRemark"));
            _player.SaveIntoDatabase();

            using (PlayerBussiness db = new PlayerBussiness())
            {
                for (int i = 0; i < _count; i++)
                {
                    ItemInfo item = m_items[i];
                    if (item == null)
                    {
                        continue;
                    }

                    RemoveItem(item);
                    response = true;
                    annexIndex++;
                    annexRemark.Append(annexIndex);
                    annexRemark.Append("、");
                    annexRemark.Append(item.Template.Name);
                    annexRemark.Append("x");
                    annexRemark.Append(item.Count);
                    annexRemark.Append(";");

                    switch (annexIndex)
                    {
                    case 1:
                        message.Annex1     = item.ItemID.ToString();
                        message.Annex1Name = item.Template.Name;
                        break;

                    case 2:
                        message.Annex2     = item.ItemID.ToString();
                        message.Annex2Name = item.Template.Name;
                        break;

                    case 3:
                        message.Annex3     = item.ItemID.ToString();
                        message.Annex3Name = item.Template.Name;
                        break;

                    case 4:
                        message.Annex4     = item.ItemID.ToString();
                        message.Annex4Name = item.Template.Name;
                        break;

                    case 5:
                        message.Annex5     = item.ItemID.ToString();
                        message.Annex5Name = item.Template.Name;
                        break;
                    }

                    if (annexIndex == 5)
                    {
                        annexIndex          = 0;
                        message.AnnexRemark = annexRemark.ToString();
                        annexRemark.Remove(0, annexRemark.Length);
                        annexRemark.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark"));
                        message.Content    = "";
                        message.Gold       = 0;
                        message.Money      = 0;
                        message.Receiver   = _player.PlayerCharacter.NickName;
                        message.ReceiverID = _player.PlayerCharacter.ID;
                        message.Sender     = LanguageMgr.GetTranslation("Game.Server.GameUtils.CommonBag.Sender");
                        message.SenderID   = _player.PlayerCharacter.ID;
                        message.Title      = message.Annex1Name; //message.AnnexRemark;// LanguageMgr.GetTranslation("Game.Server.GameUtils.CommonBag.Title");
                        message.Type       = (int)eMailType.StoreCanel;
                        db.SendMail(message);

                        message.Revert();
                    }
                }

                if (annexIndex > 0)
                {
                    message.AnnexRemark = annexRemark.ToString();
                    message.Content     = "";
                    message.Gold        = 0;
                    message.Money       = 0;
                    message.Receiver    = _player.PlayerCharacter.NickName;
                    message.ReceiverID  = _player.PlayerCharacter.ID;
                    message.Sender      = LanguageMgr.GetTranslation("Game.Server.GameUtils.CommonBag.Sender");
                    message.SenderID    = _player.PlayerCharacter.ID;
                    message.Title       = message.Annex1Name; //message.AnnexRemark;// LanguageMgr.GetTranslation("Game.Server.GameUtils.CommonBag.Title");
                    message.Type        = (int)eMailType.StoreCanel;
                    db.SendMail(message);
                }
            }

            _player.SaveIntoDatabase();

            if (response)
            {
                _player.Out.SendMailResponse(_player.PlayerCharacter.ID, eMailRespose.Receiver);
            }
        }