public override void OnTick(MarryRoom room) { try { if(room != null) { room.KickAllPlayer(); using(PlayerBussiness db = new PlayerBussiness()) { db.DisposeMarryRoomInfo(room.Info.ID); } 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((short)ePackageType.MARRY_ROOM_DISPOSE); pkg.WriteInt(room.Info.ID); WorldMgr.MarryScene.SendToALL(pkg); room.StopTimer(); } } catch(Exception ex) { if (log.IsErrorEnabled) log.Error("OnTick",ex); } }
private static void CheckRoomStatus() { using(PlayerBussiness db = new PlayerBussiness()) { MarryRoomInfo[] roomInfos = db.GetMarryRoomInfo(); foreach(MarryRoomInfo roomInfo in roomInfos) { //TimeSpan usedTime = roomInfo.BreakTime - roomInfo.BeginTime; //int timeLeft = roomInfo.AvailTime - usedTime.Hours; if(roomInfo.ServerID != GameServer.Instance.Configuration.ServerID) { continue; } TimeSpan usedTime = DateTime.Now - roomInfo.BeginTime; int timeLeft = roomInfo.AvailTime * 60 - (int)usedTime.TotalMinutes; if (timeLeft > 0) { //创建房间 CreateMarryRoomFromDB(roomInfo, timeLeft); } else { db.DisposeMarryRoomInfo(roomInfo.ID); GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(roomInfo.GroomID); GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(roomInfo.BrideID); GameServer.Instance.LoginServer.SendMarryRoomInfoToPlayer(roomInfo.GroomID, false, roomInfo); GameServer.Instance.LoginServer.SendMarryRoomInfoToPlayer(roomInfo.BrideID, false, roomInfo); } } } }