public bool WriteStatueData(CoupleWishSyncStatueData statue) { bool result; try { string sql = string.Format("INSERT INTO t_couple_wish_statue(`couple_id`,`man_rid`,`man_zoneid`,`man_rname`,`wife_rid`,`wife_zoneid`,`wife_rname`,`admire_cnt`,`is_divorced`,`week`,`yanhui_join_num`,`man_statue`,`wife_statue`) VALUES({0},{1},{2},'{3}',{4},{5},'{6}',{7},{8},{9},{10},@man_statue,@wife_statue) ON DUPLICATE KEY UPDATE `admire_cnt`={7},`is_divorced`={8},`yanhui_join_num`={10},`man_statue`=@man_statue,`wife_statue`=@wife_statue;", new object[] { statue.DbCoupleId, statue.Man.RoleId, statue.Man.ZoneId, statue.Man.RoleName, statue.Wife.RoleId, statue.Wife.ZoneId, statue.Wife.RoleName, statue.BeAdmireCount, statue.IsDivorced, statue.Week, statue.YanHuiJoinNum }); DbHelperMySQL.ExecuteSqlInsertImg(sql, new List <Tuple <string, byte[]> > { new Tuple <string, byte[]>("man_statue", statue.ManRoleDataEx), new Tuple <string, byte[]>("wife_statue", statue.WifeRoleDataEx) }); result = true; } catch (Exception ex) { LogManager.WriteLog(LogTypes.Error, string.Format("CoupleWish WriteStatueData failed, couple_id={0},man={1},wife={2}", statue.DbCoupleId, statue.Man.RoleId, statue.Wife.RoleId), ex, true); result = false; } return(result); }
/// <summary> /// 加载雕像数据 /// </summary> /// <param name="week"></param> /// <returns></returns> public CoupleWishSyncStatueData LoadCoupleStatue(int week) { CoupleWishSyncStatueData data = new CoupleWishSyncStatueData(); data.ModifyTime = TimeUtil.NowDateTime(); MySqlDataReader sdr = null; try { string sql = string.Format("SELECT `couple_id`,`man_rid`,`man_zoneid`,`man_rname`,`man_statue`,`wife_rid`,`wife_zoneid`,`wife_rname`,`wife_statue`,`admire_cnt`,`is_divorced`,`yanhui_join_num` " + "FROM t_couple_wish_statue WHERE `week`={0};", week); sdr = DbHelperMySQL.ExecuteReader(sql); while (sdr != null && sdr.Read()) { data.DbCoupleId = Convert.ToInt32(sdr["couple_id"]); data.Man = new KuaFuRoleMiniData(); data.Man.RoleId = Convert.ToInt32(sdr["man_rid"]); data.Man.ZoneId = Convert.ToInt32(sdr["man_zoneid"]); data.Man.RoleName = sdr["man_rname"].ToString(); if (!sdr.IsDBNull(sdr.GetOrdinal("man_statue"))) { data.ManRoleDataEx = (byte[])(sdr["man_statue"]); } data.Wife = new KuaFuRoleMiniData(); data.Wife.RoleId = Convert.ToInt32(sdr["wife_rid"]); data.Wife.ZoneId = Convert.ToInt32(sdr["wife_zoneid"]); data.Wife.RoleName = sdr["wife_rname"].ToString(); if (!sdr.IsDBNull(sdr.GetOrdinal("wife_statue"))) { data.WifeRoleDataEx = (byte[])(sdr["wife_statue"]); } data.BeAdmireCount = Convert.ToInt32(sdr["admire_cnt"]); data.IsDivorced = Convert.ToInt32(sdr["is_divorced"]); data.YanHuiJoinNum = Convert.ToInt32(sdr["yanhui_join_num"]); data.Week = week; break; } } catch (Exception ex) { LogManager.WriteExceptionUseCache(ex.Message); } finally { if (sdr != null) { sdr.Close(); } } return(data); }
public void SetDiaoXiang(CoupleWishSyncStatueData newStatue) { if (newStatue.DbCoupleId > 0 && (newStatue.ManRoleDataEx == null || newStatue.WifeRoleDataEx == null)) { RoleData4Selector manRoleData4Selector = RoleManager.getInstance().GetMainOccupationRoleDataForSelector(newStatue.Man.RoleId, GameManager.ServerId); RoleData4Selector wifeRoleData4Selector = RoleManager.getInstance().GetMainOccupationRoleDataForSelector(newStatue.Wife.RoleId, GameManager.ServerId); if (manRoleData4Selector != null && wifeRoleData4Selector != null) { CoupleWishReportStatueData statueReq = new CoupleWishReportStatueData(); statueReq.DbCoupleId = newStatue.DbCoupleId; statueReq.ManStatue = DataHelper.ObjectToBytes <RoleData4Selector>(manRoleData4Selector); statueReq.WifeStatue = DataHelper.ObjectToBytes <RoleData4Selector>(wifeRoleData4Selector); TianTiClient.getInstance().CoupleWishReportCoupleStatue(statueReq); } } if (newStatue.DbCoupleId > 0 && newStatue.ManRoleDataEx != null && newStatue.WifeRoleDataEx != null) { if (newStatue.IsDivorced == 1) { this.ReshowCoupleStatue(null, null); } else if (this._Statue == null || this._Statue.ManRoleDataEx == null || this._Statue.WifeRoleDataEx == null || this._Statue.DbCoupleId != newStatue.DbCoupleId) { this.ReshowCoupleStatue(DataHelper.BytesToObject <RoleData4Selector>(newStatue.ManRoleDataEx, 0, newStatue.ManRoleDataEx.Length), DataHelper.BytesToObject <RoleData4Selector>(newStatue.WifeRoleDataEx, 0, newStatue.WifeRoleDataEx.Length)); } } else { this.ReshowCoupleStatue(null, null); } NPC npc = NPCGeneralManager.GetNPCFromConfig(this.YanHuiMapCode, this.YanHuiNpcId, this.YanHuiNpcX, this.YanHuiNpcY, this.YanHuiNpcDir); if (newStatue.DbCoupleId > 0 && npc != null && (this._Statue == null || this._Statue.DbCoupleId != newStatue.DbCoupleId) && newStatue.YanHuiJoinNum < this._Config.YanHuiCfg.TotalMaxJoinNum) { NPCGeneralManager.AddNpcToMap(npc); } if (newStatue.DbCoupleId <= 0 || newStatue.YanHuiJoinNum >= this._Config.YanHuiCfg.TotalMaxJoinNum) { NPCGeneralManager.RemoveMapNpc(this.YanHuiMapCode, this.YanHuiNpcId); } this._Statue = newStatue; }
/// <summary> /// 设置雕像 /// </summary> /// <param name="newStatue"></param> public void SetDiaoXiang(CoupleWishSyncStatueData newStatue) { if (newStatue.DbCoupleId > 0 && (newStatue.ManRoleDataEx == null || newStatue.WifeRoleDataEx == null)) { // 把第一名情侣的雕像形象数据上传到中心 // 雕像数据非常大,有100K+,所以在祝福的时候不传到中心,然后每个服务器自行检测上周的第一名是否有雕像数据,如果没有,那么则尝试上报雕像数据 // 第一名所在的服务器上报之后,其余服务器就能同步到雕像数据了 SafeClientData manClientData = Global.GetSafeClientDataFromLocalOrDB(newStatue.Man.RoleId); SafeClientData wifeClientData = Global.GetSafeClientDataFromLocalOrDB(newStatue.Wife.RoleId); RoleDataEx manRoleDataEx = manClientData != null?manClientData.GetRoleDataEx() : null; RoleDataEx wifeRoleDataEx = wifeClientData != null?wifeClientData.GetRoleDataEx() : null; if (manRoleDataEx != null && wifeRoleDataEx != null) { CoupleWishReportStatueData statueReq = new CoupleWishReportStatueData(); statueReq.DbCoupleId = newStatue.DbCoupleId; statueReq.ManStatue = DataHelper.ObjectToBytes <RoleDataEx>(manRoleDataEx); statueReq.WifeStatue = DataHelper.ObjectToBytes <RoleDataEx>(wifeRoleDataEx); TianTiClient.getInstance().CoupleWishReportCoupleStatue(statueReq); } } if (newStatue.DbCoupleId > 0 && newStatue.ManRoleDataEx != null && newStatue.WifeRoleDataEx != null) { if (newStatue.IsDivorced == 1) // 强制不可显示雕像。离婚了呗 { ReshowCoupleStatue(null, null); } else { if (_Statue == null || _Statue.ManRoleDataEx == null || _Statue.WifeRoleDataEx == null || _Statue.DbCoupleId != newStatue.DbCoupleId) { ReshowCoupleStatue(DataHelper.BytesToObject <RoleDataEx>(newStatue.ManRoleDataEx, 0, newStatue.ManRoleDataEx.Length), DataHelper.BytesToObject <RoleDataEx>(newStatue.WifeRoleDataEx, 0, newStatue.WifeRoleDataEx.Length)); } } } else { ReshowCoupleStatue(null, null); } NPC npc = NPCGeneralManager.GetNPCFromConfig(YanHuiMapCode, YanHuiNpcId, YanHuiNpcX, YanHuiNpcY, YanHuiNpcDir); if (newStatue.DbCoupleId > 0 && null != npc && (_Statue == null || _Statue.DbCoupleId != newStatue.DbCoupleId) && newStatue.YanHuiJoinNum < _Config.YanHuiCfg.TotalMaxJoinNum) { NPCGeneralManager.AddNpcToMap(npc); } if (newStatue.DbCoupleId <= 0 || newStatue.YanHuiJoinNum >= _Config.YanHuiCfg.TotalMaxJoinNum) { NPCGeneralManager.RemoveMapNpc(YanHuiMapCode, YanHuiNpcId); } _Statue = newStatue; }