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); }
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); } } } } }
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 :; } } } }