Example #1
0
        Guid[] GetIdleMembers(Guid managerId, DTOBuffMemberView buffData)
        {
            if (!buffData.SyncIdleFlag)
            {
                return(null);
            }
            var       members = NbManagerbuffmemberMgr.GetByMid(managerId, ShareUtil.GetTableMod(managerId));
            Guid      tid     = Guid.Empty;
            var       dic     = buffData.BuffMembers;
            const int cnt     = 5;
            int       i       = 0;
            var       ary     = new Guid[cnt];

            foreach (var item in members)
            {
                if (i >= cnt)
                {
                    break;
                }
                tid = item.Tid;
                if (!dic.ContainsKey(tid))
                {
                    ary[i++] = tid;
                }
            }
            for (; i < cnt; ++i)
            {
                ary[i] = Guid.Empty;
            }
            return(ary);
        }
Example #2
0
 internal bool SyncMembersCore(Guid managerId, EnumArenaType arenaType, DTOBuffMemberView buffData, string siteId = "")
 {
     try
     {
         if (null == buffData)
         {
             return(false);
         }
         if (string.IsNullOrEmpty(siteId))
         {
             int managerHash = ShareUtil.GetTableMod(managerId);
             //var idles = GetIdleMembers(managerId, buffData);
             string mSkills   = FrameConvert.SkillListToText(buffData.ManagerSkills);
             int    errorCode = 0;
             byte[] rowVer    = BitConverter.GetBytes(buffData.UseSyncVersion);
             NbManagerbuffmemberMgr.SyncBatch(managerId, buffData.Kpi, string.Empty, mSkills, rowVer, ref rowVer, ref errorCode);
             if (errorCode != 0)
             {
                 return(false);
             }
             buffData.UseSyncVersion = BitConverter.ToUInt64(rowVer, 0);
         }
         buffData.SyncIdleFlag = false;
         s_memBuffMember.Set(arenaType.ToString() + managerId.ToString(), buffData);
         return(true);
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error(string.Format("BuffDataCore:Sync Manager[{0}]", managerId), ex);
         return(false);
     }
 }
Example #3
0
        DTOBuffMemberView GetMembers4Db(Guid managerId, ManagerSkillUseWrap use, ArenaTeammemberFrame arenaFrame)
        {
            if (!FrameConfig.SWAPBuffDataReadDb ||
                null == use || use.Raw.SyncFlag != 0)
            {
                return(null);
            }
            var rawMembers = BuffUtil.GetRawMembers(managerId, true, arenaFrame);
            var members    = NbManagerbuffmemberMgr.GetByMid(managerId, ShareUtil.GetTableMod(managerId));
            //var extra = NbManagerextraMgr.GetById(managerId);
            var             dic = new Dictionary <Guid, NbManagerbuffmemberEntity>(members.Count);
            DicPlayerEntity cfg = null;

            foreach (var item in members)
            {
                cfg = PlayersdicCache.Instance.GetPlayer(Math.Abs(item.Pid));
                if (null == cfg)
                {
                    continue;
                }
                FillBuffMemberProp(item, cfg);
                item.ReadySkillList = item.ReadySkills.Split(',').ToList();
                item.LiveSkillList  = item.LiveSkills.Split(',').ToList();
            }
            var data = CreateBuffView(managerId, use, rawMembers.ToDictionary(i => i.Idx, i => i));

            data.Kpi          = arenaFrame.Kpi;
            data.SyncIdleFlag = false;
            data.BuffMembers  = dic;
            return(data);
        }
Example #4
0
 internal bool SetMembersCore(Guid managerId, EnumArenaType arenaType)
 {
     try
     {
         int errorCode = 0;
         NbManagerbuffmemberMgr.SyncSend(managerId, null, ref errorCode);
         if (errorCode != 0)
         {
             throw new Exception(string.Format("Manager[{0}] FailCode[{1}]", managerId, errorCode));
         }
         return(true);
     }
     catch (Exception ex)
     {
         s_memBuffMember.Delete(arenaType.ToString() + managerId.ToString());
         SystemlogMgr.Error("BuffDataCore:SyncSend", ex);
         return(false);
     }
 }