public static int GameState(int gameId, int state) { int result; lock (EscapeBattle_K.Mutex) { EscapeBattlePkLogData log = null; if (!EscapeBattle_K.ThisLoopPkLogs.TryGetValue(gameId, out log)) { result = -11003; } else { log.State = state; foreach (int zhanDuiID in log.ZhanDuiIDs) { EscapeBattle_K.JoinPkData pkData; if (EscapeBattle_K.JoinDict.TryGetValue(zhanDuiID, out pkData)) { EscapeBattle_K.ZhanDuiChangeState(pkData, state); } } result = 0; } } return(result); }
public static int GameResult(int gameId, List <int> zhanDuiScoreList) { int result; lock (EscapeBattle_K.Mutex) { EscapeBattlePkLogData log = null; LogManager.WriteLog(LogTypes.Trace, string.Format("EscapeBattle::GameResult,gameid={0},scoreList={1}", gameId, string.Join <int>("_", zhanDuiScoreList)), null, true); if (!EscapeBattle_K.ThisLoopPkLogs.TryGetValue(gameId, out log)) { result = 3; } else { DateTime now = TimeUtil.NowDateTime(); for (int i = 0; i < zhanDuiScoreList.Count - 1; i += 2) { int zhanDuiID = zhanDuiScoreList[i]; int score = zhanDuiScoreList[i + 1]; if (log.ZhanDuiIDs.Contains(zhanDuiID)) { EscapeBattle_K.JoinPkData pkData; if (EscapeBattle_K.JoinDict.TryGetValue(zhanDuiID, out pkData)) { if (pkData.InGame) { pkData.InGame = false; pkData.CurrGameID = 0; pkData.DuanWeiJiFen = TianTi5v5Service.UpdateEscapeZhanDui(pkData.ZhanDuiID, score, now); } } LogManager.WriteLog(LogTypes.Trace, string.Format("EscapeBattle::GameResult,gameid={0},zhanduiid={1},score={2}", gameId, zhanDuiID, score), null, true); EscapeBattle_K.ZhanDuiChangeState(pkData, 5); } } bool canRemove = true; foreach (int zhanDuiID in log.ZhanDuiIDs) { EscapeBattle_K.JoinPkData pkData; if (EscapeBattle_K.JoinDict.TryGetValue(zhanDuiID, out pkData) && pkData.InGame) { canRemove = false; } } if (canRemove) { EscapeBattle_K.ThisLoopPkLogs.Remove(gameId); ClientAgentManager.Instance().RemoveKfFuben(EscapeBattle_K.GameType, log.ToServerID, (long)log.GameID); } result = 0; } } return(result); }