Пример #1
0
 public static BossLifeLog GetBossAttackLog(int factionID, int monsterID)
 {
     try
     {
         BossLifeLog ret;
         lock (MoYuLongXue.MoYuRunTimeData.Mutex)
         {
             BossAttackLog boss;
             if (!MoYuLongXue.MoYuRunTimeData.BossAttackLogDict.TryGetValue(monsterID, out boss))
             {
                 return(null);
             }
             int countLimit = Global.GMin(boss.BHAttackRank.Count, 5);
             ret = new BossLifeLog
             {
                 InjureSum    = boss.InjureSum,
                 BHAttackRank = boss.BHAttackRank.GetRange(0, countLimit)
             };
             boss.BHInjure.TryGetValue((long)factionID, out ret.SelfBHAttack);
         }
         return(ret);
     }
     catch (Exception ex)
     {
         LogManager.WriteLog(LogTypes.Error, string.Format("MoYuLongXue :: 处理获取boss攻打记录异常。", new object[0]), ex, true);
     }
     return(null);
 }
Пример #2
0
 public static void NotifyBossLogBy9Grid(Monster monster)
 {
     lock (MoYuLongXue.MoYuRunTimeData.Mutex)
     {
         List <object> objsList = Global.GetAll9GridObjects(monster);
         for (int i = 0; i < objsList.Count; i++)
         {
             GameClient client = objsList[i] as GameClient;
             if (null != client)
             {
                 BossLifeLog bossLifeLog = MoYuLongXue.GetBossAttackLog(client.ClientData.Faction, monster.RoleID);
                 if (null != bossLifeLog)
                 {
                     (objsList[i] as GameClient).sendCmd <BossLifeLog>(1906, bossLifeLog, false);
                 }
             }
         }
     }
 }
Пример #3
0
 public static void BroadBossLife(ZSSLScene mapInfo, GameClient client, bool Top5Chg)
 {
     if (null != mapInfo.AttackLog)
     {
         BossLifeLog bossLifeLog = new BossLifeLog();
         bossLifeLog.InjureSum = mapInfo.AttackLog.InjureSum;
         if (null != mapInfo.AttackLog.BHAttackRank)
         {
             int countLimit = Global.GMin(mapInfo.AttackLog.BHAttackRank.Count, 5);
             bossLifeLog.BHAttackRank = mapInfo.AttackLog.BHAttackRank.GetRange(0, countLimit);
         }
         List <GameClient> objsList = mapInfo.m_CopyMap.GetClientsList();
         if (objsList != null && objsList.Count > 0)
         {
             for (int i = 0; i < objsList.Count; i++)
             {
                 GameClient c = objsList[i];
                 if (c != null)
                 {
                     if (!Top5Chg && null != client)
                     {
                         if (client.ClientData.TeamID > 0 && client.ClientData.TeamID != c.ClientData.TeamID)
                         {
                             goto IL_189;
                         }
                         if (c.ClientData.RoleID != client.ClientData.RoleID)
                         {
                             goto IL_189;
                         }
                     }
                     if (null != mapInfo.AttackLog.BHInjure)
                     {
                         long tID = ZhuanShengShiLian.GetGUID(c.ClientData.TeamID, c.ClientData.RoleID);
                         mapInfo.AttackLog.BHInjure.TryGetValue(tID, out bossLifeLog.SelfBHAttack);
                     }
                     c.sendCmd <BossLifeLog>(1906, bossLifeLog, false);
                 }
                 IL_189 :;
             }
         }
     }
 }