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); }
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); }
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); }