Example #1
0
        /// <summary>
        /// 给奖励
        /// </summary>
        public void GiveAwards(YongZheZhanChangScene scene)
        {
            try
            {
                YongZheZhanChangStatisticalData gameResultData = scene.GameStatisticalData;
                foreach (var contextData in scene.ClientContextDataDict.Values)
                {
                    gameResultData.AllRoleCount++;
                    int success;
                    if (contextData.BattleWhichSide == scene.SuccessSide)
                    {
                        success = 1;
                        gameResultData.WinRoleCount++;
                    }
                    else
                    {
                        success = 0;
                        gameResultData.LoseRoleCount++;
                    }

                    GameClient client     = GameManager.ClientMgr.FindClient(contextData.RoleId);
                    string     awardsInfo = string.Format("{0},{1},{2},{3},{4}", scene.SceneInfo.Id, success, contextData.TotalScore, scene.ScoreData.Score1, scene.ScoreData.Score2);
                    if (client != null) //确认角色仍然在线
                    {
                        int score = contextData.TotalScore;
                        contextData.TotalScore = 0;
                        if (score >= RuntimeData.WarriorBattleLowestJiFen)
                        {
                            Global.SaveRoleParamsStringToDB(client, RoleParamName.YongZheZhanChangAwards, awardsInfo, true);
                        }
                        else
                        {
                            Global.SaveRoleParamsStringToDB(client, RoleParamName.YongZheZhanChangAwards, RuntimeData.RoleParamsAwardsDefaultString, true);
                        }

                        NtfCanGetAward(client, success, score, scene.SceneInfo, scene.ScoreData.Score1, scene.ScoreData.Score2);
                    }
                    else if (contextData.TotalScore >= RuntimeData.WarriorBattleLowestJiFen)
                    {
                        Global.UpdateRoleParamByNameOffline(contextData.RoleId, RoleParamName.YongZheZhanChangAwards, awardsInfo, contextData.ServerId);
                    }
                    else
                    {
                        Global.UpdateRoleParamByNameOffline(contextData.RoleId, RoleParamName.YongZheZhanChangAwards, RuntimeData.RoleParamsAwardsDefaultString, contextData.ServerId);
                    }
                }

                YongZheZhanChangClient.getInstance().PushGameResultData(gameResultData);
            }
            catch (System.Exception ex)
            {
                DataHelper.WriteExceptionLogEx(ex, "天梯系统清场调度异常");
            }
        }
        public void WriteRoleInfoDataToDb(object obj)
        {
            //写数据库
            try
            {
                string sql = "";
                if (obj is YongZheZhanChangStatisticalData)
                {
                    YongZheZhanChangStatisticalData data = obj as YongZheZhanChangStatisticalData;
                    sql = string.Format("INSERT INTO t_yongzhezhanchang_fuben_log(gameid,allrolecount,winrolecount,loserolecount,lianshascore,zhongjiescore,caijiscore,bossscore,killscore,gametime) " +
                                        "VALUES({0},{1},{2},{3},{4},{5},{6},{7},{8},now())",
                                        data.GameId, data.AllRoleCount, data.WinRoleCount, data.LoseRoleCount, data.LianShaScore,
                                        data.ZhongJieScore, data.CaiJiScore, data.BossScore, data.KillScore);
                }
                else if (obj is KingOfBattleStatisticalData)
                {
                    KingOfBattleStatisticalData data = obj as KingOfBattleStatisticalData;
                    sql = string.Format("INSERT INTO t_kingofbattle_fuben_log(gameid,allrolecount,winrolecount,loserolecount,lianshascore,zhongjiescore,caijiscore,bossscore,killscore,gametime) " +
                                        "VALUES({0},{1},{2},{3},{4},{5},{6},{7},{8},now())",
                                        data.GameId, data.AllRoleCount, data.WinRoleCount, data.LoseRoleCount, data.LianShaScore,
                                        data.ZhongJieScore, data.CaiJiScore, data.BossScore, data.KillScore);
                }
                else if (obj is KuaFuBossStatisticalData)
                {
                    KuaFuBossStatisticalData data = obj as KuaFuBossStatisticalData;
                    for (int i = 0; i < data.MonsterDieTimeList.Count - 1; i += 2)
                    {
                        //INSERT INTO t_kuafu_boss_log(gameid,monsterid,killtime) VALUES({0},{1},{2});
                        sql += string.Format("INSERT INTO t_kuafu_boss_log VALUES({0},{1},{2});", data.GameId, data.MonsterDieTimeList[i], data.MonsterDieTimeList[i + 1]);
                    }
                }
                else if (obj is GameLogItem)
                {
                    GameLogItem data = obj as GameLogItem;
                    sql = string.Format("INSERT INTO t_yongzhezhanchang_role_statistics_log(servercount,fubencount,signupcount,entercount,gametime) VALUES({0},{1},{2},{3},now());",
                                        data.ServerCount, data.FubenCount, data.SignUpCount, data.EnterCount);
                }

                if (!string.IsNullOrEmpty(sql))
                {
                    DbHelperMySQL.ExecuteSql(sql);
                }
            }
            catch (System.Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
            }
        }