public override int HandlePacket(GamePlayer player, GSPacketIn packet)
        {
            int result;

            if (!player.PlayerCharacter.IsMarried)
            {
                result = 1;
            }
            else
            {
                if (player.PlayerCharacter.IsCreatedMarryRoom)
                {
                    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
                    {
                        if (player.CurrentRoom != null)
                        {
                            player.CurrentRoom.RemovePlayerUnsafe(player);
                        }
                        if (player.CurrentMarryRoom != null)
                        {
                            player.CurrentMarryRoom.RemovePlayer(player);
                        }
                        MarryRoomInfo info = new MarryRoomInfo();
                        info.Name             = packet.ReadString().Replace(";", "");
                        info.Pwd              = packet.ReadString();
                        info.MapIndex         = packet.ReadInt();
                        info.AvailTime        = packet.ReadInt();
                        info.MaxCount         = packet.ReadInt();
                        info.GuestInvite      = packet.ReadBoolean();
                        info.RoomIntroduction = packet.ReadString();
                        info.ServerID         = GameServer.Instance.Config.ServerID;
                        info.IsHymeneal       = false;
                        string[] array = new string[]
                        {
                            "1",
                            "2",
                            "3"
                        };
                        string[] money = "2000,2700,3400".Split(new char[]
                        {
                            ','
                        });
                        if (money.Length < 3)
                        {
                            MarryRoomCreateHandler.log.Error("MarryRoomCreateMoney node in configuration file is wrong");

                            result = 1;
                        }
                        else
                        {
                            int needMoney;
                            switch (info.AvailTime)
                            {
                            case 2:
                                needMoney = int.Parse(money[0]);
                                break;

                            case 3:
                                needMoney = int.Parse(money[1]);
                                break;

                            case 4:
                                needMoney = int.Parse(money[2]);
                                break;

                            default:
                                needMoney      = int.Parse(money[2]);
                                info.AvailTime = 4;
                                break;
                            }
                            if (player.PlayerCharacter.Money >= needMoney)
                            {
                                MarryRoom room = MarryRoomMgr.CreateMarryRoom(player, info);
                                if (room != null)
                                {
                                    player.RemoveMoney(needMoney, LogMoneyType.Marry, LogMoneyType.Marry_Room);
                                    GSPacketIn pkg = player.Out.SendMarryRoomInfo(player, room);
                                    player.Out.SendMarryRoomLogin(player, true);
                                    room.SendToScenePlayer(pkg);
                                    CountBussiness.InsertSystemPayCount(player.PlayerCharacter.ID, needMoney, 0, 0, 0);
                                }
                                result = 0;
                            }
                            else
                            {
                                player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("UserFirecrackersCommand.MoneyNotEnough", new object[0]));
                                result = 1;
                            }
                        }
                    }
                }
            }
            return(result);
        }
Exemple #2
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (!client.Player.PlayerCharacter.IsMarried)
            {
                return(1);
            }

            if (client.Player.PlayerCharacter.IsCreatedMarryRoom)
            {
                //client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryRoomCreateHandler.Msg1"));
                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.CurrentRoom != null)
            {
                client.Player.CurrentRoom.RemovePlayerUnsafe(client.Player);
            }

            if (client.Player.CurrentMarryRoom != null)
            {
                client.Player.CurrentMarryRoom.RemovePlayer(client.Player);
            }

            //GamePlayer tempPlayer = WorldMgr.GetPlayerById(client.Player.PlayerCharacter.SpouseID);
            //if(tempPlayer != null)
            //{
            //    if (tempPlayer.IsMarryRommCreating)
            //    {
            //        client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryRoomCreateHandler.IsCreating"));
            //        return 1;
            //    }
            //}

            //client.Player.IsMarryRommCreating = true;

            MarryRoomInfo info = new MarryRoomInfo();

            info.Name             = packet.ReadString().Replace(";", "");
            info.Pwd              = packet.ReadString();
            info.MapIndex         = packet.ReadInt();
            info.AvailTime        = packet.ReadInt();
            info.MaxCount         = packet.ReadInt();
            info.GuestInvite      = packet.ReadBoolean();
            info.RoomIntroduction = packet.ReadString();
            info.ServerID         = GameServer.Instance.Configuration.ServerID;
            info.IsHymeneal       = false;

            string[] money = GameProperties.PRICE_MARRY_ROOM.Split(',');
            if (money.Length < 3)
            {
                if (log.IsErrorEnabled)
                {
                    log.Error("MarryRoomCreateMoney node in configuration file is wrong");
                }

                return(1);
            }

            int needMoney = 0;

            switch (info.AvailTime)
            {
            case 2:
                needMoney = int.Parse(money[0]);
                break;

            case 3:
                needMoney = int.Parse(money[1]);
                break;

            case 4:
                needMoney = int.Parse(money[2]);
                break;

            default:
                needMoney      = int.Parse(money[2]);
                info.AvailTime = 4;
                break;
            }

            if (client.Player.PlayerCharacter.Money >= needMoney)
            {
                MarryRoom room = MarryRoomMgr.CreateMarryRoom(client.Player, info);

                if (room != null)
                {
                    client.Player.RemoveMoney(needMoney);
                    LogMgr.LogMoneyAdd(LogMoneyType.Marry, LogMoneyType.Marry_Room, client.Player.PlayerCharacter.ID, needMoney, client.Player.PlayerCharacter.Money, 0, 0, 0, 0, "", "", "");
                    GSPacketIn pkg = client.Player.Out.SendMarryRoomInfo(client.Player, room);
                    client.Player.Out.SendMarryRoomLogin(client.Player, true);
                    room.SendToScenePlayer(pkg);

                    CountBussiness.InsertSystemPayCount(client.Player.PlayerCharacter.ID, needMoney, 0, (int)eConsumerType.Marry, (int)eSubConsumerType.Marry_MarryRoom);
                }

                return(0);
            }
            else
            {
                client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("UserFirecrackersCommand.MoneyNotEnough"));
            }

            return(1);
        }
Exemple #3
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            if (!client.Player.PlayerCharacter.IsMarried)
            {
                return(1);
            }
            if (client.Player.PlayerCharacter.IsCreatedMarryRoom)
            {
                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.CurrentRoom != null)
            {
                client.Player.CurrentRoom.RemovePlayerUnsafe(client.Player);
            }
            if (client.Player.CurrentMarryRoom != null)
            {
                client.Player.CurrentMarryRoom.RemovePlayer(client.Player);
            }
            MarryRoomInfo marryRoomInfo = new MarryRoomInfo();

            marryRoomInfo.Name             = packet.ReadString().Replace(";", "");
            marryRoomInfo.Pwd              = packet.ReadString();
            marryRoomInfo.MapIndex         = packet.ReadInt();
            marryRoomInfo.AvailTime        = packet.ReadInt();
            marryRoomInfo.MaxCount         = packet.ReadInt();
            marryRoomInfo.GuestInvite      = packet.ReadBoolean();
            marryRoomInfo.RoomIntroduction = packet.ReadString();
            marryRoomInfo.ServerID         = GameServer.Instance.Configuration.ServerID;
            marryRoomInfo.IsHymeneal       = false;
            string[] array = GameProperties.PRICE_MARRY_ROOM.Split(new char[]
            {
                ','
            });
            if (array.Length < 3)
            {
                if (MarryRoomCreateHandler.log.IsErrorEnabled)
                {
                    MarryRoomCreateHandler.log.Error("MarryRoomCreateMoney node in configuration file is wrong");
                }
                return(1);
            }
            int num;

            switch (marryRoomInfo.AvailTime)
            {
            case 2:
                num = int.Parse(array[0]);
                break;

            case 3:
                num = int.Parse(array[1]);
                break;

            case 4:
                num = int.Parse(array[2]);
                break;

            default:
                num = int.Parse(array[2]);
                marryRoomInfo.AvailTime = 4;
                break;
            }
            if (client.Player.PlayerCharacter.Money >= num)
            {
                MarryRoom marryRoom = MarryRoomMgr.CreateMarryRoom(client.Player, marryRoomInfo);
                if (marryRoom != null)
                {
                    client.Player.RemoveMoney(num);
                    LogMgr.LogMoneyAdd(LogMoneyType.Marry, LogMoneyType.Marry_Room, client.Player.PlayerCharacter.ID, num, client.Player.PlayerCharacter.Money, 0, 0, 0, 0, "", "", "");
                    GSPacketIn packet2 = client.Player.Out.SendMarryRoomInfo(client.Player, marryRoom);
                    client.Player.Out.SendMarryRoomLogin(client.Player, true);
                    marryRoom.SendToScenePlayer(packet2);
                    CountBussiness.InsertSystemPayCount(client.Player.PlayerCharacter.ID, num, 0, 0, 0);
                }
                return(0);
            }
            client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("UserFirecrackersCommand.MoneyNotEnough", new object[0]));
            return(1);
        }