public void HandleMarryRoomDispose(GSPacketIn packet) { int roomId = packet.ReadInt(); MarryRoom[] rooms = MarryRoomMgr.GetAllMarryRoom(); MarryRoom[] array = rooms; for (int i = 0; i < array.Length; i++) { MarryRoom room = array[i]; if (room.Info.ID == roomId) { room.KillAllPlayer(); MarryRoomMgr.RemoveMarryRoom(room); GSPacketIn pkg = new GSPacketIn(254); pkg.WriteInt(roomId); WorldMgr.MarryScene.SendToALL(pkg); room.StopTimer(); GSPacketIn pkg2 = new GSPacketIn(249); pkg2.WriteByte(9); room.SendToAll(pkg2); room.StopTimerForHymeneal(); room.SendUserRemoveLate(); room.SendMarryRoomInfoUpdateToScenePlayers(room); } } }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.CurrentMarryRoom != null && client.Player.PlayerCharacter.ID == client.Player.CurrentMarryRoom.Info.PlayerID) { string name = packet.ReadString(); bool flag = packet.ReadBoolean(); string pwd = packet.ReadString(); string roomIntroduction = packet.ReadString(); MarryRoom currentMarryRoom = client.Player.CurrentMarryRoom; currentMarryRoom.Info.RoomIntroduction = roomIntroduction; currentMarryRoom.Info.Name = name; if (flag) { currentMarryRoom.Info.Pwd = pwd; } using (PlayerBussiness playerBussiness = new PlayerBussiness()) { playerBussiness.UpdateMarryRoomInfo(currentMarryRoom.Info); } currentMarryRoom.SendMarryRoomInfoUpdateToScenePlayers(currentMarryRoom); client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryRoomInfoUpdateHandler.Successed", new object[0])); return(0); } return(1); }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.CurrentMarryRoom != null && client.Player.PlayerCharacter.ID == client.Player.CurrentMarryRoom.Info.PlayerID) { string roomName = packet.ReadString(); bool isPwdChanged = packet.ReadBoolean(); string pwd = packet.ReadString(); string introduction = packet.ReadString(); MarryRoom room = client.Player.CurrentMarryRoom; room.Info.RoomIntroduction = introduction; room.Info.Name = roomName; if (isPwdChanged) { room.Info.Pwd = pwd; } using (PlayerBussiness db = new PlayerBussiness()) { db.UpdateMarryRoomInfo(room.Info); } room.SendMarryRoomInfoUpdateToScenePlayers(room); client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryRoomInfoUpdateHandler.Successed")); return(0); } return(1); }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { int result; if (player.CurrentMarryRoom != null && player.PlayerCharacter.ID == player.CurrentMarryRoom.Info.PlayerID) { string roomName = packet.ReadString(); bool isPwdChanged = packet.ReadBoolean(); string pwd = packet.ReadString(); string introduction = packet.ReadString(); MarryRoom room = player.CurrentMarryRoom; room.Info.RoomIntroduction = introduction; room.Info.Name = roomName; if (isPwdChanged) { room.Info.Pwd = pwd; } using (PlayerBussiness db = new PlayerBussiness()) { db.UpdateMarryRoomInfo(room.Info); } room.SendMarryRoomInfoUpdateToScenePlayers(room); player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryRoomInfoUpdateHandler.Successed", new object[0])); result = 0; } else { result = 1; } return(result); }
public int HandlePacket(GameClient client, GSPacketIn packet) { GSPacketIn gSPacketIn = new GSPacketIn(240, client.Player.PlayerCharacter.ID); if (WorldMgr.MarryScene.AddPlayer(client.Player)) { gSPacketIn.WriteBoolean(true); } else { gSPacketIn.WriteBoolean(false); } client.Out.SendTCP(gSPacketIn); if (client.Player.CurrentMarryRoom == null) { MarryRoom[] allMarryRoom = MarryRoomMgr.GetAllMarryRoom(); MarryRoom[] array = allMarryRoom; for (int i = 0; i < array.Length; i++) { MarryRoom room = array[i]; client.Player.Out.SendMarryRoomInfo(client.Player, room); } } return(0); }
public static MarryRoom GetMarryRoombyID(int id, string pwd, ref string msg) { MarryRoom room = null; _locker.AcquireReaderLock(); try { if (id > 0) { if (_Rooms.Keys.Contains(id)) { if (_Rooms[id].Info.Pwd != pwd) { msg = "Game.Server.Managers.PWDError"; } else { room = _Rooms[id]; } } } } finally { _locker.ReleaseReaderLock(); } return(room); }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); if (WorldMgr.MarryScene.AddPlayer(player)) { pkg.WriteBoolean(true); } else { pkg.WriteBoolean(false); } player.Out.SendTCP(pkg); if (player.CurrentMarryRoom == null) { MarryRoom[] list = MarryRoomMgr.GetAllMarryRoom(); MarryRoom[] array = list; for (int i = 0; i < array.Length; i++) { MarryRoom g = array[i]; player.Out.SendMarryRoomInfo(player, g); } } return(0); }
public static MarryRoom CreateMarryRoom(GamePlayer player, MarryRoomInfo info) { if (!player.PlayerCharacter.IsMarried) { return(null); } MarryRoom marryRoom = null; DateTime now = DateTime.Now; info.PlayerID = player.PlayerCharacter.ID; info.PlayerName = player.PlayerCharacter.NickName; if (player.PlayerCharacter.Sex) { info.GroomID = info.PlayerID; info.GroomName = info.PlayerName; info.BrideID = player.PlayerCharacter.SpouseID; info.BrideName = player.PlayerCharacter.SpouseName; } else { info.BrideID = info.PlayerID; info.BrideName = info.PlayerName; info.GroomID = player.PlayerCharacter.SpouseID; info.GroomName = player.PlayerCharacter.SpouseName; } info.BeginTime = now; info.BreakTime = now; using (PlayerBussiness playerBussiness = new PlayerBussiness()) { if (playerBussiness.InsertMarryRoomInfo(info)) { marryRoom = new MarryRoom(info, MarryRoomMgr._processor); GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(info.GroomID); GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(info.BrideID); GameServer.Instance.LoginServer.SendMarryRoomInfoToPlayer(info.GroomID, true, info); GameServer.Instance.LoginServer.SendMarryRoomInfoToPlayer(info.BrideID, true, info); } } if (marryRoom != null) { MarryRoomMgr._locker.AcquireWriterLock(); try { MarryRoomMgr._Rooms.Add(marryRoom.Info.ID, marryRoom); } finally { MarryRoomMgr._locker.ReleaseWriterLock(); } if (marryRoom.AddPlayer(player)) { marryRoom.BeginTimer(3600000 * marryRoom.Info.AvailTime); return(marryRoom); } } return(null); }
public static MarryRoom[] GetAllMarryRoom() { MarryRoom[] list = null; _locker.AcquireReaderLock(); try { list = new MarryRoom[_Rooms.Count]; _Rooms.Values.CopyTo(list, 0); } finally { _locker.ReleaseReaderLock(); } return(list == null ? new MarryRoom[0] : list); }
public static void RemoveMarryRoom(MarryRoom room) { _locker.AcquireReaderLock(); try { if (_Rooms.Keys.Contains(room.Info.ID)) { _Rooms.Remove(room.Info.ID); } } finally { _locker.ReleaseReaderLock(); } }
public static MarryRoom[] GetAllMarryRoom() { MarryRoom[] array = null; MarryRoomMgr._locker.AcquireReaderLock(); try { array = new MarryRoom[MarryRoomMgr._Rooms.Count]; MarryRoomMgr._Rooms.Values.CopyTo(array, 0); } finally { MarryRoomMgr._locker.ReleaseReaderLock(); } if (array != null) { return(array); } return(new MarryRoom[0]); }
public static MarryRoom CreateMarryRoomFromDB(MarryRoomInfo roomInfo, int timeLeft) { MarryRoomMgr._locker.AcquireWriterLock(); try { MarryRoom marryRoom = new MarryRoom(roomInfo, MarryRoomMgr._processor); if (marryRoom != null) { MarryRoomMgr._Rooms.Add(marryRoom.Info.ID, marryRoom); marryRoom.BeginTimer(60000 * timeLeft); return(marryRoom); } } finally { MarryRoomMgr._locker.ReleaseWriterLock(); } return(null); }
public static MarryRoom CreateMarryRoomFromDB(MarryRoomInfo roomInfo, int timeLeft) { MarryRoom room = null; _locker.AcquireWriterLock(); try { room = new MarryRoom(roomInfo, _processor); if (room != null) { _Rooms.Add(room.Info.ID, room); room.BeginTimer(60 * 1000 * timeLeft); return(room); } } finally { _locker.ReleaseWriterLock(); } return(null); }
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); }
public GSPacketIn SendMarryRoomInfo(GamePlayer player, MarryRoom room) { throw new NotImplementedException(); }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { MarryRoom room = null; string msg = ""; int id = packet.ReadInt(); string pwd = packet.ReadString(); int sceneID = packet.ReadInt(); int result; if (id != 0) { room = MarryRoomMgr.GetMarryRoombyID(id, (pwd == null) ? "" : pwd, ref msg); } else { if (player.PlayerCharacter.IsCreatedMarryRoom) { MarryRoom[] rooms = MarryRoomMgr.GetAllMarryRoom(); MarryRoom[] array = rooms; for (int i = 0; i < array.Length; i++) { MarryRoom r = array[i]; if (r.Info.GroomID == player.PlayerCharacter.ID || r.Info.BrideID == player.PlayerCharacter.ID) { room = r; break; } } } if (room == null && player.PlayerCharacter.SelfMarryRoomID != 0) { player.Out.SendMarryRoomLogin(player, false); MarryRoomInfo info = null; using (PlayerBussiness db = new PlayerBussiness()) { info = db.GetMarryRoomInfoSingle(player.PlayerCharacter.SelfMarryRoomID); } if (info != null) { player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryRoomLoginHandler.RoomExist", new object[] { info.ServerID, player.PlayerCharacter.SelfMarryRoomID })); result = 0; return(result); } } } if (room != null) { if (room.CheckUserForbid(player.PlayerCharacter.ID)) { player.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("MarryRoomLoginHandler.Forbid", new object[0])); player.Out.SendMarryRoomLogin(player, false); result = 1; return(result); } if (room.RoomState == eRoomState.FREE) { if (room.AddPlayer(player)) { player.MarryMap = sceneID; GSPacketIn pkg = player.Out.SendMarryRoomLogin(player, true); room.SendMarryRoomInfoUpdateToScenePlayers(room); result = 0; return(result); } } else { player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryRoomLoginHandler.AlreadyBegin", new object[0])); } player.Out.SendMarryRoomLogin(player, false); } else { player.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation(string.IsNullOrEmpty(msg) ? "MarryRoomLoginHandler.Failed" : msg, new object[0])); player.Out.SendMarryRoomLogin(player, false); } result = 1; return(result); }
public int HandlePacket(GameClient client, GSPacketIn packet) { //if (client.Player.CurrentGame != null) //{ // client.Player.CurrentGame.RemovePlayer(client.Player); //} //if(client.Player.CurrentMarryRoom != null) //{ // client.Player.CurrentMarryRoom.RemovePlayer(client.Player); //} MarryRoom room = null; string msg = ""; int id = packet.ReadInt(); string pwd = packet.ReadString(); int sceneID = packet.ReadInt(); if (id != 0) { room = MarryRoomMgr.GetMarryRoombyID(id, pwd == null ? "" : pwd, ref msg); } else { if (client.Player.PlayerCharacter.IsCreatedMarryRoom) { MarryRoom[] rooms = MarryRoomMgr.GetAllMarryRoom(); foreach (MarryRoom r in rooms) { if (r.Info.GroomID == client.Player.PlayerCharacter.ID || r.Info.BrideID == client.Player.PlayerCharacter.ID) { room = r; break; } } } if (room == null && client.Player.PlayerCharacter.SelfMarryRoomID != 0) { client.Player.Out.SendMarryRoomLogin(client.Player, false); MarryRoomInfo info = null; using (PlayerBussiness db = new PlayerBussiness()) { info = db.GetMarryRoomInfoSingle(client.Player.PlayerCharacter.SelfMarryRoomID); } if (info != null) { client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryRoomLoginHandler.RoomExist", info.ServerID, client.Player.PlayerCharacter.SelfMarryRoomID)); return(0); } } } if (room != null) { if (room.CheckUserForbid(client.Player.PlayerCharacter.ID)) { client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("MarryRoomLoginHandler.Forbid")); client.Player.Out.SendMarryRoomLogin(client.Player, false); return(1); } if (room.RoomState == eRoomState.FREE) { if (room.AddPlayer(client.Player)) { client.Player.MarryMap = sceneID; GSPacketIn pkg = client.Player.Out.SendMarryRoomLogin(client.Player, true); room.SendMarryRoomInfoUpdateToScenePlayers(room); return(0); } } else { client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryRoomLoginHandler.AlreadyBegin")); } client.Player.Out.SendMarryRoomLogin(client.Player, false); } else { client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation(string.IsNullOrEmpty(msg) ? "MarryRoomLoginHandler.Failed" : msg)); client.Player.Out.SendMarryRoomLogin(client.Player, false); } return(1); }
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); }
public int HandlePacket(GameClient client, GSPacketIn packet) { MarryRoom marryRoom = null; string text = ""; int num = packet.ReadInt(); string text2 = packet.ReadString(); int marryMap = packet.ReadInt(); if (num != 0) { marryRoom = MarryRoomMgr.GetMarryRoombyID(num, (text2 == null) ? "" : text2, ref text); } else { if (client.Player.PlayerCharacter.IsCreatedMarryRoom) { MarryRoom[] allMarryRoom = MarryRoomMgr.GetAllMarryRoom(); MarryRoom[] array = allMarryRoom; for (int i = 0; i < array.Length; i++) { MarryRoom marryRoom2 = array[i]; if (marryRoom2.Info.GroomID == client.Player.PlayerCharacter.ID || marryRoom2.Info.BrideID == client.Player.PlayerCharacter.ID) { marryRoom = marryRoom2; break; } } } if (marryRoom == null && client.Player.PlayerCharacter.SelfMarryRoomID != 0) { client.Player.Out.SendMarryRoomLogin(client.Player, false); MarryRoomInfo marryRoomInfo = null; using (PlayerBussiness playerBussiness = new PlayerBussiness()) { marryRoomInfo = playerBussiness.GetMarryRoomInfoSingle(client.Player.PlayerCharacter.SelfMarryRoomID); } if (marryRoomInfo != null) { client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryRoomLoginHandler.RoomExist", new object[] { marryRoomInfo.ServerID, client.Player.PlayerCharacter.SelfMarryRoomID })); return(0); } } } if (marryRoom != null) { if (marryRoom.CheckUserForbid(client.Player.PlayerCharacter.ID)) { client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("MarryRoomLoginHandler.Forbid", new object[0])); client.Player.Out.SendMarryRoomLogin(client.Player, false); return(1); } if (marryRoom.RoomState == eRoomState.FREE) { if (marryRoom.AddPlayer(client.Player)) { client.Player.MarryMap = marryMap; client.Player.Out.SendMarryRoomLogin(client.Player, true); marryRoom.SendMarryRoomInfoUpdateToScenePlayers(marryRoom); return(0); } } else { client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryRoomLoginHandler.AlreadyBegin", new object[0])); } client.Player.Out.SendMarryRoomLogin(client.Player, false); } else { client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation(string.IsNullOrEmpty(text) ? "MarryRoomLoginHandler.Failed" : text, new object[0])); client.Player.Out.SendMarryRoomLogin(client.Player, false); } return(1); }