/// <summary> /// 上报某对couple的雕像数据 /// </summary> /// <param name="req"></param> public void CoupleWishReportCoupleStatue(CoupleWishReportStatueData req) { if (req == null || req.ManStatue == null || req.WifeStatue == null) { return; } lock (Mutex) { if (SyncData.Statue.DbCoupleId == req.DbCoupleId) { var oldManEx = SyncData.Statue.ManRoleDataEx; var oldWifeEx = SyncData.Statue.WifeRoleDataEx; SyncData.Statue.ManRoleDataEx = req.ManStatue; SyncData.Statue.WifeRoleDataEx = req.WifeStatue; if (!Persistence.WriteStatueData(SyncData.Statue)) { SyncData.Statue.ManRoleDataEx = oldManEx; SyncData.Statue.WifeRoleDataEx = oldWifeEx; } } SyncData.Statue.ModifyTime = TimeUtil.NowDateTime(); } }
public void CoupleWishReportCoupleStatue(CoupleWishReportStatueData req) { ITianTiService kuaFuService = GetKuaFuService(); if (null != kuaFuService) { try { kuaFuService.CoupleWishReportCoupleStatue(req); } catch (System.Exception ex) { ResetKuaFuService(); } } else { } }
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; }
public void CoupleWishReportCoupleStatue(CoupleWishReportStatueData req) { if (req != null && req.ManStatue != null && req.WifeStatue != null) { lock (this.Mutex) { if (this.SyncData.Statue.DbCoupleId == req.DbCoupleId) { byte[] oldManEx = this.SyncData.Statue.ManRoleDataEx; byte[] oldWifeEx = this.SyncData.Statue.WifeRoleDataEx; this.SyncData.Statue.ManRoleDataEx = req.ManStatue; this.SyncData.Statue.WifeRoleDataEx = req.WifeStatue; if (!this.Persistence.WriteStatueData(this.SyncData.Statue)) { this.SyncData.Statue.ManRoleDataEx = oldManEx; this.SyncData.Statue.WifeRoleDataEx = oldWifeEx; } } this.SyncData.Statue.ModifyTime = TimeUtil.NowDateTime(); } } }
public void CoupleWishReportCoupleStatue(CoupleWishReportStatueData req) { CoupleWishService.getInstance().CoupleWishReportCoupleStatue(req); }
/// <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; }