/// <summary> /// 推送玩家进入监狱 /// </summary> public void PushmyEnterPrison(Int64 userid, tg_prison prison) { if (!Variable.OnlinePlayer.ContainsKey(userid)) { return; } PushMyLeaveScene(userid); var key = string.Format("{0}_{1}", (int)ModuleNumber.SCENE, userid); if (!Variable.SCENCE.ContainsKey(key)) { return; } var prisonscene = Variable.SCENCE[key].CloneEntity(); GetPrisonPoint(prisonscene); key = string.Format("{0}_{1}", (int)ModuleNumber.PRISON, userid); Variable.SCENCE.AddOrUpdate(key, prisonscene, (m, n) => n); var date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); var doubledate = date.Ticks; var count = tg_prison_messages.GetUserMessageCount(doubledate, userid); //今日留言次数 var list = GetPrisonOhters(userid); var aso = BuildData((int)ResultType.SUCCESS, Convert.ToDouble(prison.prison_time), count, list); SendPv(userid, aso, (int)PrisonCommand.PUSH_NETER, (int)ModuleNumber.PRISON); }
/// <summary>玩家进入监狱 </summary> public void PutInPrison(Int64 userid) { var prison = tg_prison.GetPrisonByUserId(userid); if (prison != null) { return; } var myprison = new tg_prison { user_id = userid }; var user_extend = tg_user_extend.GetByUserId(userid); if (user_extend == null) { return; } if (!CheckEnterPrison(user_extend.steal_fail_count, userid)) { return; } var now = (DateTime.Now.Ticks - 621355968000000000) / 10000; var baserule = Variable.BASE_RULE.FirstOrDefault(q => q.id == "25003"); //入狱时间 if (baserule == null) { return; } var basetime = Convert.ToInt64(baserule.value); myprison.prison_time = basetime * 1000 + now; myprison.Insert(); NewTaskStart(basetime * 1000, userid); if (user_extend.steal_fail_count >= 2) { user_extend.steal_fail_count = 0; user_extend.Update(); } if (!Variable.OnlinePlayer.ContainsKey(userid)) { return; } var session = Variable.OnlinePlayer[userid] as TGGSession; if (session == null) { return; } session.Player.UserExtend = user_extend; PushmyEnterPrison(userid, myprison); PushEnterPrison(userid);//向监狱内玩家推送进入监狱 }