예제 #1
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            bool flag = packet.ReadBoolean();

            if (!client.Player.PlayerCharacter.IsMarried)
            {
                return(1);
            }
            if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0]));
                return(0);
            }
            if (client.Player.PlayerCharacter.IsCreatedMarryRoom)
            {
                client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("DivorceApplyHandler.Msg2", new object[0]));
                return(1);
            }
            int num = GameProperties.PRICE_DIVORCED;

            if (flag)
            {
                num = GameProperties.PRICE_DIVORCED_DISCOUNT;
            }
            if (client.Player.PlayerCharacter.Money < num)
            {
                client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("DivorceApplyHandler.Msg1", new object[0]));
                return(1);
            }
            client.Player.RemoveMoney(num);
            LogMgr.LogMoneyAdd(LogMoneyType.Marry, LogMoneyType.Marry_Unmarry, client.Player.PlayerCharacter.ID, num, client.Player.PlayerCharacter.Money, 0, 0, 0, 0, "", "", "");
            CountBussiness.InsertSystemPayCount(client.Player.PlayerCharacter.ID, num, 0, 0, 3);
            using (PlayerBussiness playerBussiness = new PlayerBussiness())
            {
                PlayerInfo userSingleByUserID = playerBussiness.GetUserSingleByUserID(client.Player.PlayerCharacter.SpouseID);
                if (userSingleByUserID == null || userSingleByUserID.Sex == client.Player.PlayerCharacter.Sex)
                {
                    return(1);
                }
                MarryApplyInfo marryApplyInfo = new MarryApplyInfo();
                marryApplyInfo.UserID           = client.Player.PlayerCharacter.SpouseID;
                marryApplyInfo.ApplyUserID      = client.Player.PlayerCharacter.ID;
                marryApplyInfo.ApplyUserName    = client.Player.PlayerCharacter.NickName;
                marryApplyInfo.ApplyType        = 3;
                marryApplyInfo.LoveProclamation = "";
                marryApplyInfo.ApplyResult      = false;
                int num2 = 0;
                if (playerBussiness.SavePlayerMarryNotice(marryApplyInfo, 0, ref num2))
                {
                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(userSingleByUserID.ID);
                    client.Player.LoadMarryProp();
                }
            }
            client.Player.QuestInventory.ClearMarryQuest();
            client.Player.Out.SendPlayerDivorceApply(client.Player, true, true);
            client.Player.SendMessage(LanguageMgr.GetTranslation("DivorceApplyHandler.Msg3", new object[0]));
            return(0);
        }
예제 #2
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            bool result   = packet.ReadBoolean();
            int  UserID   = packet.ReadInt();
            int  AnswerId = packet.ReadInt();  //答复对话框ID

            //先判断自已有没有结婚
            if (result && client.Player.PlayerCharacter.IsMarried)
            {
                client.Player.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("MarryApplyReplyHandler.Msg2"));
            }

            using (PlayerBussiness db = new PlayerBussiness())
            {
                PlayerInfo tempSpouse = db.GetUserSingleByUserID(UserID);
                //发送好人卡
                if (!result)
                {
                    SendGoodManCard(tempSpouse.NickName, tempSpouse.ID, client.Player.PlayerCharacter.NickName, client.Player.PlayerCharacter.ID, db);
                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(tempSpouse.ID);
                }

                //判断对方有没有结婚
                if (tempSpouse == null || tempSpouse.Sex == client.Player.PlayerCharacter.Sex)
                {
                    return(1);
                }
                if (tempSpouse.IsMarried)
                {
                    client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyReplyHandler.Msg3"));
                }

                MarryApplyInfo info = new MarryApplyInfo();
                info.UserID           = UserID;
                info.ApplyUserID      = client.Player.PlayerCharacter.ID;
                info.ApplyUserName    = client.Player.PlayerCharacter.NickName;
                info.ApplyType        = 2;
                info.LoveProclamation = "";
                info.ApplyResult      = result;
                int id = 0;
                if (db.SavePlayerMarryNotice(info, AnswerId, ref id))
                {
                    if (result)
                    {
                        client.Player.Out.SendMarryApplyReply(client.Player, tempSpouse.ID, tempSpouse.NickName, result, false, id);
                        client.Player.LoadMarryProp();
                        SendSYSMessages(client.Player, tempSpouse);
                    }
                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(tempSpouse.ID);
                    return(0);
                }
            }
            return(1);
        }
예제 #3
0
        public override int HandlePacket(GamePlayer player, GSPacketIn packet)
        {
            bool result   = packet.ReadBoolean();
            int  UserID   = packet.ReadInt();
            int  AnswerId = packet.ReadInt();

            if (result && player.PlayerCharacter.SpouseID > 0)
            {
                player.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("MarryApplyReplyHandler.Msg2", new object[0]));
            }
            int result2;

            using (PlayerBussiness db = new PlayerBussiness())
            {
                PlayerInfo tempSpouse = db.GetUserSingleByUserID(UserID);
                if (!result)
                {
                    this.SendGoodManCard(tempSpouse.NickName, tempSpouse.ID, player.PlayerCharacter.NickName, player.PlayerCharacter.ID, db);
                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(tempSpouse.ID);
                }
                if (tempSpouse == null || tempSpouse.Sex == player.PlayerCharacter.Sex)
                {
                    result2 = 1;
                    return(result2);
                }
                if (tempSpouse.SpouseID > 0)
                {
                    player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyReplyHandler.Msg3", new object[0]));
                }
                MarryApplyInfo info = new MarryApplyInfo();
                info.UserID           = UserID;
                info.ApplyUserID      = player.PlayerCharacter.ID;
                info.ApplyUserName    = player.PlayerCharacter.NickName;
                info.ApplyType        = 2;
                info.LoveProclamation = "";
                info.ApplyResult      = result;
                int id = 0;
                if (db.SavePlayerMarryNotice(info, AnswerId, ref id))
                {
                    if (result)
                    {
                        player.Out.SendMarryApplyReply(player, tempSpouse.ID, tempSpouse.NickName, result, false, id);
                        player.LoadMarryProp();
                        this.SendSYSMessages(player, tempSpouse);
                    }
                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(tempSpouse.ID);
                    result2 = 0;
                    return(result2);
                }
            }
            result2 = 1;
            return(result2);
        }
예제 #4
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            bool flag     = packet.ReadBoolean();
            int  userID   = packet.ReadInt();
            int  answerId = packet.ReadInt();

            if (flag && client.Player.PlayerCharacter.IsMarried)
            {
                client.Player.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("MarryApplyReplyHandler.Msg2", new object[0]));
            }
            using (PlayerBussiness playerBussiness = new PlayerBussiness())
            {
                PlayerInfo userSingleByUserID = playerBussiness.GetUserSingleByUserID(userID);
                if (!flag)
                {
                    this.SendGoodManCard(userSingleByUserID.NickName, userSingleByUserID.ID, client.Player.PlayerCharacter.NickName, client.Player.PlayerCharacter.ID, playerBussiness);
                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(userSingleByUserID.ID);
                }
                if (userSingleByUserID == null || userSingleByUserID.Sex == client.Player.PlayerCharacter.Sex)
                {
                    int result = 1;
                    return(result);
                }
                if (userSingleByUserID.IsMarried)
                {
                    client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyReplyHandler.Msg3", new object[0]));
                }
                MarryApplyInfo marryApplyInfo = new MarryApplyInfo();
                marryApplyInfo.UserID           = userID;
                marryApplyInfo.ApplyUserID      = client.Player.PlayerCharacter.ID;
                marryApplyInfo.ApplyUserName    = client.Player.PlayerCharacter.NickName;
                marryApplyInfo.ApplyType        = 2;
                marryApplyInfo.LoveProclamation = "";
                marryApplyInfo.ApplyResult      = flag;
                int iD = 0;
                if (playerBussiness.SavePlayerMarryNotice(marryApplyInfo, answerId, ref iD))
                {
                    if (flag)
                    {
                        client.Player.Out.SendMarryApplyReply(client.Player, userSingleByUserID.ID, userSingleByUserID.NickName, flag, false, iD);
                        client.Player.LoadMarryProp();
                    }
                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(userSingleByUserID.ID);
                    int result = 0;
                    return(result);
                }
            }
            return(1);
        }
예제 #5
0
        public override int HandlePacket(GamePlayer player, GSPacketIn packet)
        {
            bool isInMovie = packet.ReadBoolean();
            int  result;

            if (!player.PlayerCharacter.IsMarried)
            {
                result = 1;
            }
            else
            {
                if (player.PlayerCharacter.HasBagPassword && player.PlayerCharacter.IsLocked)
                {
                    player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0]));
                    result = 0;
                }
                else
                {
                    int needMoney = AppConfig.AppSettings["DivorcedMoney"].ConvertToInt(5214);
                    if (player.PlayerCharacter.Money < needMoney)
                    {
                        player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("DivorceApplyHandler.Msg1", new object[0]));
                        result = 1;
                    }
                    else
                    {
                        if (player.PlayerCharacter.IsCreatedMarryRoom)
                        {
                            using (PlayerBussiness db = new PlayerBussiness())
                            {
                                db.DisposeMarryRoomInfo(player.PlayerCharacter.SelfMarryRoomID);
                                GameServer.Instance.LoginServer.SendMarryRoomDisposeToPlayer(player.PlayerCharacter.SelfMarryRoomID);
                            }
                            MarryRoom[] rooms = MarryRoomMgr.GetAllMarryRoom();
                            MarryRoom[] array = rooms;
                            for (int i = 0; i < array.Length; i++)
                            {
                                MarryRoom room = array[i];
                                if (room.Info.GroomID == player.PlayerCharacter.ID || room.Info.BrideID == player.PlayerCharacter.ID)
                                {
                                    room.KillAllPlayer();
                                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(room.Info.GroomID);
                                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(room.Info.BrideID);
                                    GameServer.Instance.LoginServer.SendMarryRoomInfoToPlayer(room.Info.GroomID, false, room.Info);
                                    GameServer.Instance.LoginServer.SendMarryRoomInfoToPlayer(room.Info.BrideID, false, room.Info);
                                    MarryRoomMgr.RemoveMarryRoom(room);
                                    GSPacketIn pkg = new GSPacketIn(254);
                                    pkg.WriteInt(room.Info.ID);
                                    WorldMgr.MarryScene.SendToALL(pkg);
                                    room.StopTimer();
                                    if (isInMovie)
                                    {
                                        GSPacketIn pkg2 = new GSPacketIn(249);
                                        pkg2.WriteByte(9);
                                        room.SendToAll(pkg2);
                                        room.StopTimerForHymeneal();
                                        room.SendUserRemoveLate();
                                    }
                                    break;
                                }
                            }
                        }
                        player.RemoveMoney(needMoney, LogMoneyType.Marry, LogMoneyType.Marry_Unmarry);
                        CountBussiness.InsertSystemPayCount(player.PlayerCharacter.ID, needMoney, 0, 0, 3);
                        using (PlayerBussiness db = new PlayerBussiness())
                        {
                            PlayerInfo tempSpouse = db.GetUserSingleAllUserID(player.PlayerCharacter.SpouseID);
                            if (tempSpouse == null || tempSpouse.Sex == player.PlayerCharacter.Sex)
                            {
                                result = 1;
                                return(result);
                            }
                            MarryApplyInfo info = new MarryApplyInfo();
                            info.UserID           = player.PlayerCharacter.SpouseID;
                            info.ApplyUserID      = player.PlayerCharacter.ID;
                            info.ApplyUserName    = player.PlayerCharacter.NickName;
                            info.ApplyType        = 3;
                            info.LoveProclamation = "";
                            info.ApplyResult      = false;
                            int id = 0;
                            if (db.SavePlayerMarryNotice(info, 0, ref id))
                            {
                                GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(tempSpouse.ID);
                                player.LoadMarryProp();
                            }
                        }
                        player.QuestInventory.ClearMarryQuest();
                        player.Out.SendPlayerDivorceApply(player, true, true);
                        result = 0;
                    }
                }
            }
            return(result);
        }
예제 #6
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (client.Player.PlayerCharacter.IsMarried)
            {
                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);
            }
            int    num = packet.ReadInt();
            string loveProclamation = packet.ReadString();

            packet.ReadBoolean();
            bool flag = true;

            using (PlayerBussiness playerBussiness = new PlayerBussiness())
            {
                PlayerInfo userSingleByUserID = playerBussiness.GetUserSingleByUserID(num);
                if (userSingleByUserID == null || userSingleByUserID.Sex == client.Player.PlayerCharacter.Sex)
                {
                    int result = 1;
                    return(result);
                }
                if (userSingleByUserID.IsMarried)
                {
                    client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg2", new object[0]));
                    int result = 1;
                    return(result);
                }
                ItemInfo itemByTemplateID = client.Player.PropBag.GetItemByTemplateID(0, 11103);
                if (itemByTemplateID == null)
                {
                    ShopItemInfo shopItemInfo = ShopMgr.FindShopbyTemplatID(11103).FirstOrDefault <ShopItemInfo>();
                    if (shopItemInfo == null)
                    {
                        client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg6", new object[0]));
                        int result = 1;
                        return(result);
                    }
                    if (client.Player.PlayerCharacter.Money < shopItemInfo.AValue1)
                    {
                        client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg1", new object[0]));
                        int result = 1;
                        return(result);
                    }
                    flag = false;
                }
                MarryApplyInfo marryApplyInfo = new MarryApplyInfo();
                marryApplyInfo.UserID           = num;
                marryApplyInfo.ApplyUserID      = client.Player.PlayerCharacter.ID;
                marryApplyInfo.ApplyUserName    = client.Player.PlayerCharacter.NickName;
                marryApplyInfo.ApplyType        = 1;
                marryApplyInfo.LoveProclamation = loveProclamation;
                marryApplyInfo.ApplyResult      = false;
                int iD = 0;
                if (playerBussiness.SavePlayerMarryNotice(marryApplyInfo, 0, ref iD))
                {
                    if (flag)
                    {
                        client.Player.RemoveItem(itemByTemplateID);
                    }
                    else
                    {
                        ShopItemInfo shopItemInfo2 = ShopMgr.FindShopbyTemplatID(11103).FirstOrDefault <ShopItemInfo>();
                        client.Player.RemoveMoney(shopItemInfo2.AValue1);
                        LogMgr.LogMoneyAdd(LogMoneyType.Marry, LogMoneyType.Marry_Spark, client.Player.PlayerCharacter.ID, shopItemInfo2.AValue1, client.Player.PlayerCharacter.Money, 0, 0, 0, 0, "", shopItemInfo2.TemplateID.ToString(), "1");
                    }
                    client.Player.Out.SendPlayerMarryApply(client.Player, client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.NickName, loveProclamation, iD);
                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(num);
                    string arg_2BA_0 = userSingleByUserID.NickName;
                    client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg3", new object[0]));
                }
            }
            return(0);
        }
예제 #7
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (!client.Player.PlayerCharacter.IsMarried)
            {
                return(1);
            }

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

            if (client.Player.PlayerCharacter.IsCreatedMarryRoom)
            {
                client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("DivorceApplyHandler.Msg2"));
                return(1);
            }

            int needMoney = GameProperties.PRICE_DIVORCED;

            if (client.Player.PlayerCharacter.Money < needMoney)
            {
                client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("DivorceApplyHandler.Msg1"));
                return(1);
            }
            else
            {
                client.Player.RemoveMoney(needMoney);
                LogMgr.LogMoneyAdd(LogMoneyType.Marry, LogMoneyType.Marry_Unmarry, client.Player.PlayerCharacter.ID, needMoney, client.Player.PlayerCharacter.Money, 0, 0, 0, 0, "", "", "");
                CountBussiness.InsertSystemPayCount(client.Player.PlayerCharacter.ID, needMoney, 0, (int)eConsumerType.Marry, (int)eSubConsumerType.Marry_Divorce);

                using (PlayerBussiness db = new PlayerBussiness())
                {
                    PlayerInfo tempSpouse = db.GetUserSingleByUserID(client.Player.PlayerCharacter.SpouseID);
                    if (tempSpouse == null || tempSpouse.Sex == client.Player.PlayerCharacter.Sex)
                    {
                        return(1);
                    }

                    MarryApplyInfo info = new MarryApplyInfo();
                    info.UserID           = client.Player.PlayerCharacter.SpouseID;
                    info.ApplyUserID      = client.Player.PlayerCharacter.ID;
                    info.ApplyUserName    = client.Player.PlayerCharacter.NickName;
                    info.ApplyType        = 3;
                    info.LoveProclamation = "";
                    info.ApplyResult      = false;
                    int id = 0;
                    if (db.SavePlayerMarryNotice(info, 0, ref id))
                    {
                        GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(tempSpouse.ID);
                        client.Player.LoadMarryProp();
                    }
                }

                client.Player.QuestInventory.ClearMarryQuest(); //离婚后清除结婚后任务.
                client.Player.Out.SendPlayerDivorceApply(client.Player, true, true);
                client.Player.SendMessage(LanguageMgr.GetTranslation("DivorceApplyHandler.Msg3"));
            }

            return(0);
        }
예제 #8
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            //判断是否结婚
            if (client.Player.PlayerCharacter.IsMarried)
            {
                return(1);
            }
            //是否有二级密码
            if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked"));
                return(1);
            }
            //开始求婚,购买戒指
            int    SpouseID         = packet.ReadInt();
            string loveProclamation = packet.ReadString();
            bool   Broadcast        = packet.ReadBoolean();
            bool   result           = false;
            bool   removeRing       = true;
            string SpouseName       = "";

            using (PlayerBussiness db = new PlayerBussiness())
            {
                PlayerInfo tempSpouse = db.GetUserSingleByUserID(SpouseID);
                if (tempSpouse == null || tempSpouse.Sex == client.Player.PlayerCharacter.Sex)
                {
                    return(1);
                }
                if (tempSpouse.IsMarried)
                {
                    client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg2"));
                    return(1);
                }
                ItemInfo WeddingRing = client.Player.PropBag.GetItemByTemplateID(0, 11103);
                if (WeddingRing == null)
                {
                    ShopItemInfo tempRing = ShopMgr.FindShopbyTemplatID(11103).FirstOrDefault();
                    if (tempRing != null)
                    {
                        //玩家身上钱是否足够。
                        if (client.Player.PlayerCharacter.Money >= tempRing.AValue1)
                        {
                            removeRing = false;
                        }
                        else
                        {
                            client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg1"));
                            return(1);
                        }
                    }
                    else
                    {
                        client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg6"));
                        return(1);
                    }
                }
                //插入结婚消息
                MarryApplyInfo info = new MarryApplyInfo();
                info.UserID           = SpouseID;
                info.ApplyUserID      = client.Player.PlayerCharacter.ID;
                info.ApplyUserName    = client.Player.PlayerCharacter.NickName;
                info.ApplyType        = 1;
                info.LoveProclamation = loveProclamation;
                info.ApplyResult      = false;
                int id = 0;
                if (db.SavePlayerMarryNotice(info, 0, ref id))
                {
                    if (removeRing)
                    {
                        client.Player.RemoveItem(WeddingRing);
                    }
                    else
                    {
                        //未开始
                        ShopItemInfo tempRing = ShopMgr.FindShopbyTemplatID(11103).FirstOrDefault();
                        client.Player.RemoveMoney(tempRing.AValue1);
                        LogMgr.LogMoneyAdd(LogMoneyType.Marry, LogMoneyType.Marry_Spark, client.Player.PlayerCharacter.ID, tempRing.AValue1, client.Player.PlayerCharacter.Money, 0, 0, 0, 0, "", tempRing.TemplateID.ToString(), "1");
                    }
                    client.Player.Out.SendPlayerMarryApply(client.Player, client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.NickName, loveProclamation, id);  //发送求婚信息
                    //发送消息给中心服务器
                    GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(SpouseID);
                    SpouseName = tempSpouse.NickName;
                    result     = true;

                    client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg3"));
                }
            }
            if (result && Broadcast && SpouseName != "")
            {
                string     msg = LanguageMgr.GetTranslation("MarryApplyHandler.Msg5", client.Player.PlayerCharacter.NickName, SpouseName);
                GSPacketIn pkg = new GSPacketIn((byte)ePackageType.SYS_NOTICE);
                pkg.WriteInt(2);
                pkg.WriteString(msg);
                GameServer.Instance.LoginServer.SendPacket(pkg);
                GamePlayer[] players = WorldMgr.GetAllPlayers();
                foreach (GamePlayer p in players)
                {
                    p.Out.SendTCP(pkg);
                }
            }
            return(0);
        }
예제 #9
0
        public override int HandlePacket(GamePlayer player, GSPacketIn packet)
        {
            int result2;

            if (player.PlayerCharacter.IsMarried)
            {
                result2 = 1;
            }
            else
            {
                if (player.PlayerCharacter.HasBagPassword && player.PlayerCharacter.IsLocked)
                {
                    player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0]));
                    result2 = 1;
                }
                else
                {
                    int    SpouseID         = packet.ReadInt();
                    string loveProclamation = packet.ReadString();
                    bool   Broadcast        = packet.ReadBoolean();
                    bool   result           = false;
                    bool   removeRing       = true;
                    string SpouseName       = "";
                    using (PlayerBussiness db = new PlayerBussiness())
                    {
                        PlayerInfo tempSpouse = db.GetUserSingleByUserID(SpouseID);
                        if (tempSpouse == null || tempSpouse.Sex == player.PlayerCharacter.Sex)
                        {
                            result2 = 1;
                            return(result2);
                        }
                        if (tempSpouse.IsMarried)
                        {
                            player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg2", new object[0]));
                            result2 = 1;
                            return(result2);
                        }
                        ItemInfo WeddingRing = player.PropBag.GetItemByTemplateID(0, 11103);
                        if (WeddingRing == null)
                        {
                            ShopItemInfo tempRing = ShopMgr.FindShopbyTemplatID(11103).FirstOrDefault <ShopItemInfo>();
                            if (tempRing == null)
                            {
                                player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg6", new object[0]));
                                result2 = 1;
                                return(result2);
                            }
                            if (player.PlayerCharacter.Money < tempRing.AValue1)
                            {
                                player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg1", new object[0]));
                                result2 = 1;
                                return(result2);
                            }
                            removeRing = false;
                        }
                        MarryApplyInfo info = new MarryApplyInfo();
                        info.UserID           = SpouseID;
                        info.ApplyUserID      = player.PlayerCharacter.ID;
                        info.ApplyUserName    = player.PlayerCharacter.NickName;
                        info.ApplyType        = 1;
                        info.LoveProclamation = loveProclamation;
                        info.ApplyResult      = false;
                        int id = 0;
                        if (db.SavePlayerMarryNotice(info, 0, ref id))
                        {
                            if (removeRing)
                            {
                                player.RemoveItem(WeddingRing, eItemRemoveType.Wedding);
                            }
                            else
                            {
                                ShopItemInfo tempRing = ShopMgr.FindShopbyTemplatID(11103).FirstOrDefault <ShopItemInfo>();
                                player.OnUsingItem(tempRing.TemplateID);
                                player.RemoveMoney(tempRing.AValue1, LogMoneyType.Marry, LogMoneyType.Marry_Spark);
                            }
                            player.Out.SendPlayerMarryApply(player, player.PlayerCharacter.ID, player.PlayerCharacter.NickName, loveProclamation, id);
                            GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(SpouseID);
                            SpouseName = tempSpouse.NickName;
                            result     = true;
                            player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg3", new object[0]));
                        }
                    }
                    if (result && Broadcast && SpouseName != "")
                    {
                        string msg = LanguageMgr.GetTranslation("MarryApplyHandler.Msg5", new object[]
                        {
                            player.PlayerCharacter.NickName,
                            SpouseName
                        });
                        GSPacketIn pkg = new GSPacketIn(10);
                        pkg.WriteInt(2);
                        pkg.WriteString(msg);
                        GameServer.Instance.LoginServer.SendPacket(pkg);
                        GamePlayer[] players = WorldMgr.GetAllPlayers();
                        GamePlayer[] array   = players;
                        for (int i = 0; i < array.Length; i++)
                        {
                            GamePlayer p = array[i];
                            p.Out.SendTCP(pkg);
                        }
                    }
                    result2 = 0;
                }
            }
            return(result2);
        }