Beispiel #1
0
        /// <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();
            }
        }
Beispiel #2
0
        public void CoupleWishReportCoupleStatue(CoupleWishReportStatueData req)
        {
            ITianTiService kuaFuService = GetKuaFuService();

            if (null != kuaFuService)
            {
                try
                {
                    kuaFuService.CoupleWishReportCoupleStatue(req);
                }
                catch (System.Exception ex)
                {
                    ResetKuaFuService();
                }
            }
            else
            {
            }
        }
Beispiel #3
0
        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();
         }
     }
 }
Beispiel #5
0
 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;
        }