private bool LoadBHMatchBHData_Join(BangHuiMatchType type, int seasonID, List <BHMatchBHData> BHMatchBHDataList_Join, bool lastSeason = false)
        {
            bool result;

            if (null == BHMatchBHDataList_Join)
            {
                result = false;
            }
            else
            {
                BHMatchBHDataList_Join.Clear();
                try
                {
                    KuaFuData <BHMatchBHData> bhData = null;
                    string strSql = string.Format("SELECT * FROM t_banghui_match_bh_season WHERE `type`={0} AND `season`={1}", (int)type, seasonID);
                    if (type == BangHuiMatchType.BHMT_Begin)
                    {
                        strSql += string.Format(" ORDER BY `group` ASC", new object[0]);
                    }
                    MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        int bhid = Convert.ToInt32(sdr["bhid"]);
                        if (type == BangHuiMatchType.BHMT_Begin && this.BHMatchBHDataDict_Gold.TryGetValue(bhid, out bhData))
                        {
                            TimeUtil.AgeByNow(ref bhData.Age);
                            if (!lastSeason)
                            {
                                bhData.V.cur_win   = Convert.ToInt32(sdr["win"]);
                                bhData.V.group     = Convert.ToInt32(sdr["group"]);
                                bhData.V.cur_score = 0;
                            }
                            BHMatchBHDataList_Join.Add(bhData.V);
                        }
                        if (type == BangHuiMatchType.Rookie && this.BHMatchBHDataDict_Rookie.TryGetValue(bhid, out bhData))
                        {
                            TimeUtil.AgeByNow(ref bhData.Age);
                            if (!lastSeason)
                            {
                                bhData.V.cur_win   = Convert.ToInt32(sdr["win"]);
                                bhData.V.group     = 0;
                                bhData.V.cur_score = Convert.ToInt32(sdr["score"]);
                            }
                            BHMatchBHDataList_Join.Add(bhData.V);
                        }
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #2
0
 public void OnJunTuanDestroy(int juntuanId)
 {
     if (!this.InRankAwardTime())
     {
         lock (this.Mutex)
         {
             KuaFuData <KFEraData> data = null;
             if (this.EraDataDict.TryGetValue(juntuanId, out data))
             {
                 bool reloadRank = false;
                 foreach (KFEraRankData item in this.EraRankList.V)
                 {
                     if (item.JunTuanID == juntuanId)
                     {
                         reloadRank = true;
                     }
                 }
                 this.ClearEraData(this.RuntimeData.CurrentEraID, juntuanId);
                 this.EraDataDict.Remove(juntuanId);
                 if (reloadRank)
                 {
                     this.LoadEraRankData();
                 }
             }
         }
     }
 }
Example #3
0
 public KuaFuCmdData GetRebornRoleData(int ptId, int roleId, long dataAge)
 {
     try
     {
         lock (this.Mutex)
         {
             KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
             if (!this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptId, roleId), out kfRebornRoleData))
             {
                 return(null);
             }
             if (dataAge != kfRebornRoleData.Age)
             {
                 return(new KuaFuCmdData
                 {
                     Age = kfRebornRoleData.Age,
                     Bytes0 = DataHelper2.ObjectToBytes <KFRebornRoleData>(kfRebornRoleData.V)
                 });
             }
             return(new KuaFuCmdData
             {
                 Age = kfRebornRoleData.Age
             });
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteException(ex.ToString());
     }
     return(null);
 }
Example #4
0
        public int RoleReborn(int ptId, int roleId, string roleName, int level)
        {
            int ret = 0;

            try
            {
                KeyValuePair <int, int>      key = new KeyValuePair <int, int>(ptId, roleId);
                KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                if (!this.RebornRoleDataDict.TryGetValue(key, out kfRebornRoleData))
                {
                    kfRebornRoleData             = new KuaFuData <KFRebornRoleData>();
                    kfRebornRoleData.V.PtID      = ptId;
                    kfRebornRoleData.V.RoleID    = roleId;
                    kfRebornRoleData.V.RoleName  = roleName;
                    kfRebornRoleData.V.Lev       = level;
                    this.RebornRoleDataDict[key] = kfRebornRoleData;
                    TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                    this.Persistence.InsertRebornRoleData(kfRebornRoleData.V);
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteException(ex.ToString());
            }
            return(ret);
        }
 private bool LoadBHMatchBHData_LastSeason(BangHuiMatchType type, int seasonID)
 {
     try
     {
         KuaFuData <BHMatchBHData> bhData = null;
         string          strSql           = string.Format("SELECT * FROM t_banghui_match_bh_season where `type`={0} and `season`={1}", (int)type, seasonID);
         MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
         while (sdr != null && sdr.Read())
         {
             int bhid = Convert.ToInt32(sdr["bhid"]);
             if (type == BangHuiMatchType.BHMT_Begin && this.BHMatchBHDataDict_Gold.TryGetValue(bhid, out bhData))
             {
                 TimeUtil.AgeByNow(ref bhData.Age);
                 bhData.V.last_win   = Convert.ToInt32(sdr["win"]);
                 bhData.V.last_score = 0;
             }
             if (type == BangHuiMatchType.Rookie && this.BHMatchBHDataDict_Rookie.TryGetValue(bhid, out bhData))
             {
                 TimeUtil.AgeByNow(ref bhData.Age);
                 bhData.V.last_win   = Convert.ToInt32(sdr["win"]);
                 bhData.V.last_score = Convert.ToInt32(sdr["score"]);
             }
         }
         if (sdr != null)
         {
             sdr.Close();
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteExceptionUseCache(ex.ToString());
         return(false);
     }
     return(true);
 }
Example #6
0
        public bool ReloadRankInfo(int rankType, KuaFuData <Dictionary <int, List <KFZorkRankInfo> > > ZorkBattleRankInfoDict)
        {
            bool ret = true;
            List <KFZorkRankInfo> rankList = new List <KFZorkRankInfo>();

            if (!ZorkBattleRankInfoDict.V.TryGetValue(rankType, out rankList))
            {
                rankList = (ZorkBattleRankInfoDict.V[rankType] = new List <KFZorkRankInfo>());
            }
            else
            {
                rankList.Clear();
            }
            try
            {
                if (rankType == 0)
                {
                    TianTi5v5Service.CalZorkBattleRankTeamJiFen(rankList);
                }
                else
                {
                    ret = this.Persistence.LoadZorkBattleRankInfo(rankType, rankList);
                }
                TimeUtil.AgeByNow(ref ZorkBattleRankInfoDict.Age);
            }
            catch (Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
                return(false);
            }
            return(ret);
        }
Example #7
0
        public KuaFuCmdData GetEraData(int juntuanid, long dataAge)
        {
            KuaFuCmdData result;

            lock (this.Mutex)
            {
                if (0 == this.RuntimeData.CurrentEraID)
                {
                    result = null;
                }
                else
                {
                    KuaFuData <KFEraData> data = null;
                    if (juntuanid == 0 && 0L == dataAge)
                    {
                        data         = new KuaFuData <KFEraData>();
                        data.V.EraID = this.RuntimeData.CurrentEraID;
                        TimeUtil.AgeByNow(ref data.Age);
                    }
                    else
                    {
                        if (!this.EraDataDict.TryGetValue(juntuanid, out data))
                        {
                            data             = new KuaFuData <KFEraData>();
                            data.V.EraID     = this.RuntimeData.CurrentEraID;
                            data.V.JunTuanID = juntuanid;
                            data.V.EraStage  = 1;
                            TimeUtil.AgeByNow(ref data.Age);
                            this.EraDataDict[juntuanid] = data;
                        }
                        if (data.V.FastEraStage != this.RuntimeData.CurFastEraStage || data.V.FastEraStateProcess != this.RuntimeData.CurFastEraStateProcess)
                        {
                            TimeUtil.AgeByNow(ref data.Age);
                        }
                    }
                    data.V.FastEraStage        = this.RuntimeData.CurFastEraStage;
                    data.V.FastEraStateProcess = this.RuntimeData.CurFastEraStateProcess;
                    if (dataAge != data.Age)
                    {
                        result = new KuaFuCmdData
                        {
                            Age    = data.Age,
                            Bytes0 = DataHelper2.ObjectToBytes <KFEraData>(data.V)
                        };
                    }
                    else
                    {
                        result = new KuaFuCmdData
                        {
                            Age = data.Age
                        };
                    }
                }
            }
            return(result);
        }
 private bool LoadKuaFuLueDuoBHData(Dictionary <int, KuaFuData <KuaFuLueDuoBHData> > KuaFuLueDuoBHDataDict, int minSeason)
 {
     try
     {
         long   sAge   = TimeUtil.AgeByNow();
         string strSql = string.Format("SELECT * FROM t_kfld_banghui where `season`>={0}", minSeason);
         using (MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false))
         {
             while (sdr != null && sdr.Read())
             {
                 KuaFuData <KuaFuLueDuoBHData> bhData = new KuaFuData <KuaFuLueDuoBHData>();
                 bhData.V.season      = Convert.ToInt32(sdr["season"]);
                 bhData.V.bhid        = Convert.ToInt32(sdr["bhid"]);
                 bhData.V.bhname      = (sdr["bhname"] as string);
                 bhData.V.zoneid      = Convert.ToInt32(sdr["zoneid"]);
                 bhData.V.sum_ziyuan  = Convert.ToInt32(sdr["sum_ziyuan"]);
                 bhData.V.last_ziyuan = Convert.ToInt32(sdr["last"]);
                 bhData.Age           = sAge;
                 KuaFuLueDuoBHDataDict[bhData.V.bhid] = bhData;
                 int zoneid = bhData.V.zoneid;
                 if (bhData.V.sum_ziyuan > 0 && zoneid > 0 && zoneid < this.ZoneID2ServerIDs.Length)
                 {
                     KuaFuLueDuoServerInfo data;
                     if (this.ServerInfoDict.TryGetValue(this.ZoneID2ServerIDs[zoneid], out data))
                     {
                         string name = KuaFuServerManager.FormatName(bhData.V.bhname, bhData.V.zoneid);
                         data.MingXingList.Add(new KuaFuLueDuoRankInfo
                         {
                             Key    = bhData.V.bhid,
                             Param1 = name,
                             Value  = bhData.V.sum_ziyuan
                         });
                     }
                 }
             }
         }
         foreach (KuaFuLueDuoServerInfo data in this.ServerInfoDict.Values)
         {
             string mingxing = KuaFuLueDuoUtils.RankList2MingXingStr(data.MingXingList, 2);
             if (mingxing != data.MingXingZhanMengList)
             {
                 data.MingXingZhanMengList = mingxing;
                 string sql = string.Format("update t_kfld_server set `mingxing`='{1}' where `serverid`={0}", data.ServerId, mingxing);
                 this.ExecuteSqlNoQuery(sql);
             }
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteExceptionUseCache(ex.ToString());
         return(false);
     }
     return(true);
 }
Example #9
0
        private bool LoadCompData(KuaFuData <Dictionary <int, KFCompData> > CompDataDict)
        {
            bool result;

            if (null == CompDataDict)
            {
                result = false;
            }
            else
            {
                try
                {
                    string          strSql = string.Format("SELECT * FROM `t_comp`", new object[0]);
                    MySqlDataReader sdr    = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KFCompData myCompData = new KFCompData();
                        myCompData.InitPlunderResList();
                        myCompData.CompType         = Convert.ToInt32(sdr["type"]);
                        myCompData.BoomValue        = Convert.ToInt32(sdr["boomval"]);
                        myCompData.YestdBoomValue   = Convert.ToInt32(sdr["boomval_yestd"]);
                        myCompData.EnemyCompType    = Convert.ToInt32(sdr["enemytype"]);
                        myCompData.EnemyCompTypeSet = Convert.ToInt32(sdr["enemyset"]);
                        myCompData.Bulletin         = sdr["bulletin"].ToString();
                        myCompData.Crystal          = Convert.ToInt32(sdr["crystal"]);
                        myCompData.BossDamageTop    = Convert.ToInt32(sdr["bossdamage"]);
                        myCompData.Boss             = Convert.ToInt32(sdr["boss"]);
                        myCompData.YestdCrystal     = Convert.ToInt32(sdr["crystal_yestd"]);
                        myCompData.YestdBoss        = Convert.ToInt32(sdr["boss_yestd"]);
                        myCompData.ParsePlunderResListString(sdr["plunderres"].ToString(), myCompData.PlunderResList);
                        myCompData.ParsePlunderResListString(sdr["plunderres_yestd"].ToString(), myCompData.YestdPlunderResList);
                        myCompData.ParseStrongholdDictString(sdr["stronghold"].ToString(), myCompData.StrongholdDict);
                        myCompData.BossKillCompType      = Convert.ToInt32(sdr["bosskilltype"]);
                        myCompData.YestdBossKillCompType = Convert.ToInt32(sdr["bosskilltype_yestd"]);
                        myCompData.MineRes  = Convert.ToInt32(sdr["mine"]);
                        myCompData.MineRank = Convert.ToInt32(sdr["mine_rank"]);
                        CompDataDict.V[myCompData.CompType] = myCompData;
                    }
                    TimeUtil.AgeByNow(ref CompDataDict.Age);
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #10
0
        private bool LoadCompRoleData(Dictionary <int, KuaFuData <KFCompRoleData> > CompRoleDataDict)
        {
            bool result;

            if (null == CompRoleDataDict)
            {
                result = false;
            }
            else
            {
                try
                {
                    string          strSql = string.Format("SELECT * FROM `t_comp_roles`", new object[0]);
                    MySqlDataReader sdr    = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KuaFuData <KFCompRoleData> myData = new KuaFuData <KFCompRoleData>();
                        myData.V.RoleID         = Convert.ToInt32(sdr["rid"]);
                        myData.V.ZoneID         = Convert.ToInt32(sdr["zoneid"]);
                        myData.V.CompType       = Convert.ToInt32(sdr["type"]);
                        myData.V.CompTypeLast   = Convert.ToInt32(sdr["type_last"]);
                        myData.V.JunXian        = Convert.ToInt32(sdr["junxian"]);
                        myData.V.JunXianLast    = Convert.ToInt32(sdr["junxian_last"]);
                        myData.V.RoleName       = Convert.ToString(sdr["rname"]);
                        myData.V.BattleJiFen    = Convert.ToInt32(sdr["battlejifen"]);
                        myData.V.CompTypeBattle = Convert.ToInt32(sdr["type_battle"]);
                        myData.V.CompTypeMine   = Convert.ToInt32(sdr["type_mine"]);
                        myData.V.MineJiFen      = Convert.ToInt32(sdr["minejifen"]);
                        string strRankTm = sdr["ranktm_bjf"].ToString();
                        if (!string.IsNullOrEmpty(strRankTm))
                        {
                            DateTime.TryParse(strRankTm, out myData.V.RankTmBJF);
                        }
                        strRankTm = sdr["ranktm_mjf"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmMJF);
                        CompRoleDataDict[myData.V.RoleID] = myData;
                        TimeUtil.AgeByNow(ref myData.Age);
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
        private bool LoadBHMatchPKInfoList(BangHuiMatchType type, KuaFuData <List <BangHuiMatchPKInfo> > BHMatchPKInfoList_Gold)
        {
            bool result;

            if (null == BHMatchPKInfoList_Gold)
            {
                result = false;
            }
            else
            {
                BHMatchPKInfoList_Gold.V.Clear();
                try
                {
                    KuaFuData <BHMatchBHData> bhData = null;
                    string          strSql           = string.Format("SELECT * FROM t_banghui_match_pk_log WHERE `type`={0} ORDER BY `season` DESC, `round` DESC LIMIT {1}", (int)type, 80);
                    MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        BangHuiMatchPKInfo pkInfo = new BangHuiMatchPKInfo();
                        pkInfo.type    = Convert.ToByte(sdr["type"]);
                        pkInfo.season  = Convert.ToInt32(sdr["season"]);
                        pkInfo.round   = Convert.ToByte(sdr["round"]);
                        pkInfo.bhid1   = Convert.ToInt32(sdr["bhid1"]);
                        pkInfo.bhid2   = Convert.ToInt32(sdr["bhid2"]);
                        pkInfo.result  = Convert.ToByte(sdr["result"]);
                        pkInfo.zoneid1 = Convert.ToInt32(sdr["zoneid1"]);
                        pkInfo.zoneid2 = Convert.ToInt32(sdr["zoneid2"]);
                        if (this.BHMatchBHDataDict_Gold.TryGetValue(pkInfo.bhid1, out bhData))
                        {
                            pkInfo.bhname1 = KuaFuServerManager.FormatName(bhData.V.zoneid_bh, bhData.V.bhname);
                        }
                        if (this.BHMatchBHDataDict_Gold.TryGetValue(pkInfo.bhid2, out bhData))
                        {
                            pkInfo.bhname2 = KuaFuServerManager.FormatName(bhData.V.zoneid_bh, bhData.V.bhname);
                        }
                        BHMatchPKInfoList_Gold.V.Add(pkInfo);
                    }
                    TimeUtil.AgeByNow(ref BHMatchPKInfoList_Gold.Age);
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #12
0
 public void SetRoleData4Selector(int ptId, int roleId, byte[] bytes)
 {
     lock (this.Mutex)
     {
         KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
         if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptId, roleId), out kfRebornRoleData))
         {
             kfRebornRoleData.V.RoleData4Selector = bytes;
             TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
             this.Persistence.UpdateRebornRoleData4Selector(kfRebornRoleData.V);
         }
     }
 }
 public KFRebornRoleData Reborn_GetRebornRoleData(int ptId, int roleId)
 {
     try
     {
         IKuaFuWorld kuaFuService = this.GetKuaFuService(false);
         if (null == kuaFuService)
         {
             return(null);
         }
         try
         {
             lock (this.Mutex)
             {
                 KeyValuePair <int, int>      key            = new KeyValuePair <int, int>(ptId, roleId);
                 KuaFuData <KFRebornRoleData> RebornRoleData = null;
                 if (!this.RebornRoleDataDict.TryGetValue(key, out RebornRoleData))
                 {
                     RebornRoleData = new KuaFuData <KFRebornRoleData>();
                     this.RebornRoleDataDict[key] = RebornRoleData;
                 }
                 KuaFuCmdData result = kuaFuService.Reborn_GetRebornRoleData(ptId, roleId, RebornRoleData.Age);
                 if (result == null || result.Age < 0L)
                 {
                     return(null);
                 }
                 if (result != null && result.Age > RebornRoleData.Age)
                 {
                     RebornRoleData.Age = result.Age;
                     if (null != result.Bytes0)
                     {
                         RebornRoleData.V = DataHelper2.BytesToObject <KFRebornRoleData>(result.Bytes0, 0, result.Bytes0.Length);
                     }
                     if (null != RebornRoleData.V)
                     {
                         this.RebornRoleDataDict[key] = RebornRoleData;
                     }
                 }
                 return(RebornRoleData.V);
             }
         }
         catch (Exception ex)
         {
             this.ResetKuaFuService();
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteException(ex.ToString());
     }
     return(null);
 }
        private bool LoadBHMatchBHData(BangHuiMatchType type, Dictionary <int, KuaFuData <BHMatchBHData> > BHMatchBHDataDict)
        {
            bool result;

            if (null == BHMatchBHDataDict)
            {
                result = false;
            }
            else
            {
                BHMatchBHDataDict.Clear();
                try
                {
                    string          strSql = string.Format("SELECT * FROM t_banghui_match_bh where `type`={0}", (int)type);
                    MySqlDataReader sdr    = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KuaFuData <BHMatchBHData> bhData = new KuaFuData <BHMatchBHData>();
                        bhData.V.type          = (int)type;
                        bhData.V.bhid          = Convert.ToInt32(sdr["bhid"]);
                        bhData.V.bhname        = (sdr["bhname"] as string);
                        bhData.V.zoneid_bh     = Convert.ToInt32(sdr["zoneid_bh"]);
                        bhData.V.rid           = Convert.ToInt32(sdr["rid"]);
                        bhData.V.rname         = (sdr["rname"] as string);
                        bhData.V.zoneid_r      = Convert.ToInt32(sdr["zoneid_r"]);
                        bhData.V.hist_play     = Convert.ToInt32(sdr["play"]);
                        bhData.V.hist_champion = Convert.ToInt32(sdr["champion"]);
                        bhData.V.hist_bullshit = Convert.ToInt32(sdr["bullshit"]);
                        bhData.V.best_record   = Convert.ToInt32(sdr["bestrecord"]);
                        string strGetWin = string.Format("select sum(win) totalwin from t_banghui_match_bh_season where `type`={0} and bhid={1}", (int)type, bhData.V.bhid);
                        bhData.V.hist_win = Convert.ToInt32(DbHelperMySQL.GetSingle(strGetWin));
                        string strGetScore = string.Format("select sum(score) totalscore from t_banghui_match_bh_season where `type`={0} and bhid={1}", (int)type, bhData.V.bhid);
                        bhData.V.hist_score = Convert.ToInt32(DbHelperMySQL.GetSingle(strGetScore));
                        bhData.V.hist_kill  = Convert.ToInt32(sdr["kill"]);
                        TimeUtil.AgeByNow(ref bhData.Age);
                        BHMatchBHDataDict[bhData.V.bhid] = bhData;
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #15
0
        public KuaFuLueDuoBHData GetBHDataByBhid_KuaFuLueDuo(int bhid)
        {
            IKuaFuService kuaFuService = this.GetKuaFuService(false);

            if (null != kuaFuService)
            {
                try
                {
                    lock (this.Mutex)
                    {
                        KuaFuData <KuaFuLueDuoBHData> bhdata = null;
                        if (!this.KuaFuLueDuoBHDataDict.TryGetValue(bhid, out bhdata))
                        {
                            bhdata = new KuaFuData <KuaFuLueDuoBHData>();
                            this.KuaFuLueDuoBHDataDict[bhid] = bhdata;
                        }
                        KuaFuCmdData result = kuaFuService.GetBHDataByBhid_KuaFuLueDuo(bhid, bhdata.Age);
                        if (result == null || result.Age < 0L)
                        {
                            return(null);
                        }
                        if (result != null && result.Age > bhdata.Age)
                        {
                            bhdata.Age = result.Age;
                            if (null != result.Bytes0)
                            {
                                bhdata.V = DataHelper2.BytesToObject <KuaFuLueDuoBHData>(result.Bytes0, 0, result.Bytes0.Length);
                            }
                            if (null != bhdata.V)
                            {
                                this.KuaFuLueDuoBHDataDict[bhid] = bhdata;
                            }
                        }
                        return(bhdata.V);
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteException(ex.ToString());
                }
            }
            return(null);
        }
Example #16
0
        public void ChangeName(int ptId, int roleId, string roleName)
        {
            try
            {
                lock (this.Mutex)
                {
                    KeyValuePair <int, int>      key = new KeyValuePair <int, int>(ptId, roleId);
                    KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                    if (this.RebornRoleDataDict.TryGetValue(key, out kfRebornRoleData))
                    {
                        kfRebornRoleData.V.RoleName = roleName;
                        TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                        this.Persistence.UpdateRebornRoleDataRoleName(kfRebornRoleData.V);
                        bool refreshRank = false;
                        foreach (KeyValuePair <int, List <KFRebornRankInfo> > kvp in this.RebornRankDict.V)
                        {
                            KFRebornRankInfo item = kvp.Value.Find((KFRebornRankInfo x) => x.PtID == ptId && x.Key == roleId);
                            if (null != item)
                            {
                                string             worldRoleID   = ConstData.FormatWorldRoleID(roleId, ptId);
                                KuaFuWorldRoleData worldRoleData = TSingleton <KuaFuWorldManager> .getInstance().LoadKuaFuWorldRoleData(roleId, ptId, worldRoleID);

                                if (null != worldRoleData)
                                {
                                    item.Param1 = KuaFuServerManager.FormatName(item.tagInfo.V.RoleName, worldRoleData.ZoneID);
                                    refreshRank = true;
                                }
                            }
                        }
                        if (refreshRank)
                        {
                            TimeUtil.AgeByNow(ref this.RebornRankDict.Age);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteException(ex.ToString());
            }
        }
Example #17
0
        private void LoadEraData()
        {
            MySqlDataReader sdr = null;

            try
            {
                string strSql = string.Format("SELECT * FROM t_juntuan_era WHERE `eraid`={0};", this.RuntimeData.CurrentEraID);
                sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                this.EraDataDict.Clear();
                int index = 1;
                while (sdr != null && sdr.Read())
                {
                    KuaFuData <KFEraData> data = new KuaFuData <KFEraData>();
                    data.V.EraID           = Convert.ToInt32(sdr["eraid"].ToString());
                    data.V.JunTuanID       = Convert.ToInt32(sdr["juntuanid"].ToString());
                    data.V.EraStage        = Convert.ToByte(sdr["stage"].ToString());
                    data.V.EraStageProcess = Convert.ToInt32(sdr["process"].ToString());
                    data.V.EraTaskList     = this.LoadEraTaskList(data.V.JunTuanID);
                    data.V.ParseEraTimePointsData(sdr["tmpoints"].ToString());
                    TimeUtil.AgeByNow(ref data.Age);
                    this.EraDataDict[data.V.JunTuanID] = data;
                    this.HandleFastEraStage(data.V);
                    index++;
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
            }
            finally
            {
                if (null != sdr)
                {
                    sdr.Close();
                }
            }
        }
Example #18
0
        public void RebornOpt(int ptid, int rid, int optType, int param1, int param2, string param3)
        {
            try
            {
                lock (this.Mutex)
                {
                    switch (optType)
                    {
                    case 0:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            kfRebornRoleData.V.Lev = param1;
                            TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                            this.Persistence.UpdateRebornRoleData(kfRebornRoleData.V, 1, true);
                        }
                        break;
                    }

                    case 1:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            kfRebornRoleData.V.Rarity += param1;
                            TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                            this.Persistence.UpdateRebornRoleData(kfRebornRoleData.V, 2, true);
                        }
                        break;
                    }

                    case 2:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            kfRebornRoleData.V.Boss += param1;
                            TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                            this.Persistence.UpdateRebornRoleData(kfRebornRoleData.V, 8, true);
                        }
                        break;
                    }

                    case 3:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            if (param1 > kfRebornRoleData.V.LianSha)
                            {
                                kfRebornRoleData.V.LianSha = param1;
                                TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                                this.Persistence.UpdateRebornRoleData(kfRebornRoleData.V, 32, true);
                            }
                        }
                        break;
                    }

                    case 4:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            KFRebornBossAwardData myData = new KFRebornBossAwardData();
                            myData.MapCodeID = param1;
                            myData.LineID    = param2;
                            string[] fields = param3.Split(new char[]
                                {
                                    ','
                                });
                            if (fields.Length == 2)
                            {
                                myData.ExtensionID = Global.SafeConvertToInt32(fields[0]);
                                myData.RankNum     = Global.SafeConvertToInt32(fields[1]);
                            }
                            KFRebornBossAwardData awardData = kfRebornRoleData.V.BossAwardList.Find((KFRebornBossAwardData x) => x.MapCodeID == myData.MapCodeID && x.LineID == myData.LineID);
                            if (null != awardData)
                            {
                                awardData.MapCodeID   = myData.MapCodeID;
                                awardData.LineID      = myData.LineID;
                                awardData.ExtensionID = myData.ExtensionID;
                                awardData.RankNum     = myData.RankNum;
                            }
                            else
                            {
                                kfRebornRoleData.V.BossAwardList.Add(myData);
                            }
                            TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                            this.Persistence.UpdateRebornRoleDataBossAward(kfRebornRoleData.V);
                        }
                        break;
                    }

                    case 5:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            kfRebornRoleData.V.BossAwardList.RemoveAll((KFRebornBossAwardData x) => x.MapCodeID == param1 && x.LineID == param2 && x.ExtensionID == Global.SafeConvertToInt32(param3));
                            TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                            this.Persistence.UpdateRebornRoleDataBossAward(kfRebornRoleData.V);
                        }
                        break;
                    }

                    case 6:
                    {
                        KeyValuePair <int, int> key = new KeyValuePair <int, int>(param1, param2);
                        KFRebornBossRefreshData myData2;
                        if (!this.BossRefreshDict.V.TryGetValue(key, out myData2))
                        {
                            myData2 = new KFRebornBossRefreshData();
                            this.BossRefreshDict.V[key] = myData2;
                        }
                        myData2.MapCodeID = param1;
                        myData2.LineID    = param2;
                        string[] fields = param3.Split(new char[]
                            {
                                ','
                            });
                        if (fields.Length == 2)
                        {
                            myData2.ExtensionID = Global.SafeConvertToInt32(fields[0]);
                            myData2.NextTime    = fields[1];
                        }
                        TimeUtil.AgeByNow(ref this.BossRefreshDict.Age);
                        break;
                    }
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteException(ex.ToString());
            }
        }
        private bool LoadBHMatchRankInfo(int rankType, int seasonCur, int seasonLast, KuaFuData <Dictionary <int, List <BangHuiMatchRankInfo> > > BHMatchRankInfoDict)
        {
            bool result;

            if (null == BHMatchRankInfoDict)
            {
                result = false;
            }
            else
            {
                List <BangHuiMatchRankInfo> rankList = null;
                if (!BHMatchRankInfoDict.V.TryGetValue(rankType, out rankList))
                {
                    rankList = (BHMatchRankInfoDict.V[rankType] = new List <BangHuiMatchRankInfo>());
                }
                else
                {
                    rankList.Clear();
                }
                try
                {
                    string strSql = this.FormatLoadBHMatchRankSql(rankType, seasonCur, seasonLast);
                    if (string.IsNullOrEmpty(strSql))
                    {
                        return(false);
                    }
                    MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        BangHuiMatchRankInfo rankInfo = new BangHuiMatchRankInfo();
                        rankInfo.Key   = Convert.ToInt32(sdr["a"]);
                        rankInfo.Value = Convert.ToInt32(sdr["b"]);
                        switch (rankType)
                        {
                        case 4:
                        case 6:
                        case 10:
                        case 12:
                        {
                            string   strParam = string.Format("SELECT zoneid,rname FROM t_banghui_match_roles WHERE `type`={0} AND rid={1};", 1, rankInfo.Key);
                            object[] arr;
                            if (DbHelperMySQL.GetSingleValues(strParam, out arr) >= 0)
                            {
                                rankInfo.Param1 = KuaFuServerManager.FormatName(Convert.ToInt32(arr[0]), arr[1].ToString());
                            }
                            string strParam2 = string.Format("SELECT zoneid_bh,bhname FROM t_banghui_match_bh, \r\n                                                (SELECT bhid FROM t_banghui_match_roles WHERE `type`={0} AND rid={1}) a1 WHERE t_banghui_match_bh.bhid = a1.bhid;", 1, rankInfo.Key);
                            if (DbHelperMySQL.GetSingleValues(strParam2, out arr) >= 0)
                            {
                                rankInfo.Param2 = KuaFuServerManager.FormatName(Convert.ToInt32(arr[0]), arr[1].ToString());
                            }
                            rankList.Add(rankInfo);
                            break;
                        }

                        case 5:
                        case 7:
                        case 11:
                        case 13:
                        {
                            string strParam = string.Format("SELECT zoneid,rname FROM t_banghui_match_roles WHERE `type`={0} AND rid={1};", 2, rankInfo.Key);
                            rankInfo.Param1 = Convert.ToString(DbHelperMySQL.GetSingle(strParam));
                            object[] arr;
                            if (DbHelperMySQL.GetSingleValues(strParam, out arr) >= 0)
                            {
                                rankInfo.Param1 = KuaFuServerManager.FormatName(Convert.ToInt32(arr[0]), arr[1].ToString());
                            }
                            string strParam2 = string.Format("SELECT zoneid_bh,bhname FROM t_banghui_match_bh, \r\n                                                (SELECT bhid FROM t_banghui_match_roles WHERE `type`={0} AND rid={1}) a1 WHERE t_banghui_match_bh.bhid = a1.bhid;", 2, rankInfo.Key);
                            if (DbHelperMySQL.GetSingleValues(strParam2, out arr) >= 0)
                            {
                                rankInfo.Param2 = KuaFuServerManager.FormatName(Convert.ToInt32(arr[0]), arr[1].ToString());
                            }
                            rankList.Add(rankInfo);
                            break;
                        }

                        case 8:
                        case 9:
                            goto IL_24B;

                        default:
                            goto IL_24B;
                        }
                        continue;
IL_24B:
                        KuaFuData <BHMatchBHData> bhData = null;
                        if (this.BHMatchBHDataDict_Gold.TryGetValue(rankInfo.Key, out bhData))
                        {
                            rankInfo.Param1 = KuaFuServerManager.FormatName(bhData.V.zoneid_bh, bhData.V.bhname);
                            rankInfo.Param2 = KuaFuServerManager.FormatName(bhData.V.zoneid_r, bhData.V.rname);
                            rankList.Add(rankInfo);
                        }
                        else if (this.BHMatchBHDataDict_Rookie.TryGetValue(rankInfo.Key, out bhData))
                        {
                            rankInfo.Param1 = KuaFuServerManager.FormatName(bhData.V.zoneid_bh, bhData.V.bhname);
                            rankInfo.Param2 = KuaFuServerManager.FormatName(bhData.V.zoneid_r, bhData.V.rname);
                            rankList.Add(rankInfo);
                        }
                    }
                    TimeUtil.AgeByNow(ref BHMatchRankInfoDict.Age);
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #20
0
        private bool LoadRebornRoleData(Dictionary <KeyValuePair <int, int>, KuaFuData <KFRebornRoleData> > RebornRoleDataDict)
        {
            bool result;

            if (null == RebornRoleDataDict)
            {
                result = false;
            }
            else
            {
                try
                {
                    string          strSql = string.Format("SELECT * FROM `t_reborn_roles`", new object[0]);
                    MySqlDataReader sdr    = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KuaFuData <KFRebornRoleData> myData = new KuaFuData <KFRebornRoleData>();
                        myData.V.PtID        = Convert.ToInt32(sdr["ptid"]);
                        myData.V.RoleID      = Convert.ToInt32(sdr["rid"]);
                        myData.V.Lev         = Convert.ToInt32(sdr["lev"]);
                        myData.V.Rarity      = Convert.ToInt32(sdr["rarity"]);
                        myData.V.RarityLast  = Convert.ToInt32(sdr["rarity_last"]);
                        myData.V.Boss        = Convert.ToInt32(sdr["boss"]);
                        myData.V.BossLast    = Convert.ToInt32(sdr["boss_last"]);
                        myData.V.LianSha     = Convert.ToInt32(sdr["liansha"]);
                        myData.V.LianShaLast = Convert.ToInt32(sdr["liansha_last"]);
                        myData.V.ParseBossAwardListString(Convert.ToString(sdr["boss_award"]), myData.V.BossAwardList);
                        myData.V.RoleName = Convert.ToString(sdr["rname"]);
                        string strRankTm = sdr["ranktm_lev"].ToString();
                        if (!string.IsNullOrEmpty(strRankTm))
                        {
                            DateTime.TryParse(strRankTm, out myData.V.RankTmLev);
                        }
                        strRankTm = sdr["ranktm_r"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmR);
                        strRankTm = sdr["ranktm_rl"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmRL);
                        strRankTm = sdr["ranktm_b"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmB);
                        strRankTm = sdr["ranktm_bl"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmBL);
                        strRankTm = sdr["ranktm_ls"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmLS);
                        strRankTm = sdr["ranktm_lsl"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmLSL);
                        RebornRoleDataDict[new KeyValuePair <int, int>(myData.V.PtID, myData.V.RoleID)] = myData;
                        myData.V.RoleData4Selector = (sdr["data1"] as byte[]);
                        TimeUtil.AgeByNow(ref myData.Age);
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
 private bool LoadKuaFuLueDuoBHData_Join(int season, Dictionary <int, KuaFuLueDuoServerJingJiaState> JingJiaDict)
 {
     try
     {
         KuaFuData <KuaFuLueDuoBHData> bhData = null;
         string          strSql = string.Format("SELECT * FROM t_kfld_banghui_season WHERE `season`={0}", season);
         MySqlDataReader sdr    = DbHelperMySQL.ExecuteReader(strSql, false);
         while (sdr != null && sdr.Read())
         {
             int bhid = Convert.ToInt32(sdr["bhid"]);
             if (this.KuaFuLueDuoBHDataDict.TryGetValue(bhid, out bhData))
             {
                 int    sid          = Convert.ToInt32(sdr["jingjia_sid"]);
                 int    jingjia      = Convert.ToInt32(sdr["jingjia"]);
                 int    last_jingjia = Convert.ToInt32(sdr["last_jingjia"]);
                 int    group        = Convert.ToInt32(sdr["group"]);
                 string bhname       = sdr["bhname"] as string;
                 int    zoneid       = Convert.ToInt32(sdr["zoneid"]);
                 bhData.V.jingjia      = jingjia;
                 bhData.V.jingjia_sid  = sid;
                 bhData.V.last_jingjia = last_jingjia;
                 bhData.V.group        = group;
                 if (sid > 0)
                 {
                     KuaFuLueDuoServerJingJiaState jjData;
                     if (!JingJiaDict.TryGetValue(bhData.V.jingjia_sid, out jjData))
                     {
                         jjData = new KuaFuLueDuoServerJingJiaState
                         {
                             ServerId    = sid,
                             JingJiaList = new List <KuaFuLueDuoBangHuiJingJiaData>()
                         };
                         JingJiaDict[bhData.V.jingjia_sid] = jjData;
                     }
                     KuaFuLueDuoBangHuiJingJiaData jjbhData = jjData.JingJiaList.Find((KuaFuLueDuoBangHuiJingJiaData x) => x.BhId == bhid);
                     if (jjbhData == null)
                     {
                         jjbhData = new KuaFuLueDuoBangHuiJingJiaData
                         {
                             BhId     = bhid,
                             BhName   = bhname,
                             ZoneId   = zoneid,
                             ServerId = sid,
                             ZiJin    = jingjia
                         };
                         jjData.JingJiaList.Add(jjbhData);
                     }
                     else
                     {
                         jjbhData.ZiJin = jingjia;
                     }
                 }
             }
         }
         if (sdr != null)
         {
             sdr.Close();
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteExceptionUseCache(ex.ToString());
         return(false);
     }
     return(true);
 }
Example #22
0
        public bool LoadCompRankInfo(int rankType, int compType, KuaFuData <Dictionary <int, List <KFCompRankInfo> > > CompRankDict, KuaFuData <List <KFCompRankInfo> > CompRankList)
        {
            bool result;

            if (CompRankDict == null && null == CompRankList)
            {
                result = false;
            }
            else
            {
                List <KFCompRankInfo> rankList = null;
                if (null != CompRankDict)
                {
                    if (!CompRankDict.V.TryGetValue(compType, out rankList))
                    {
                        rankList = (CompRankDict.V[compType] = new List <KFCompRankInfo>());
                    }
                    else
                    {
                        rankList.Clear();
                    }
                }
                else
                {
                    rankList = CompRankList.V;
                    rankList.Clear();
                }
                try
                {
                    string strSql = this.FormatLoadCompRankSql(rankType, compType);
                    if (string.IsNullOrEmpty(strSql))
                    {
                        return(false);
                    }
                    if (rankType == 3)
                    {
                        for (int i = 1; i <= 3; i++)
                        {
                            rankList.Add(new KFCompRankInfo());
                        }
                    }
                    MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KFCompRankInfo rankInfo = new KFCompRankInfo();
                        rankInfo.Key   = Convert.ToInt32(sdr["a"]);
                        rankInfo.Value = Convert.ToInt32(sdr["b"]);
                        if (rankType == 3)
                        {
                            rankList[rankInfo.Key - 1] = rankInfo;
                        }
                        else
                        {
                            KuaFuData <KFCompRoleData> kfRoleData = null;
                            if (this.CompRoleDataDict.TryGetValue(rankInfo.Key, out kfRoleData))
                            {
                                rankInfo.Param1  = KuaFuServerManager.FormatName(kfRoleData.V.RoleName, kfRoleData.V.ZoneID);
                                rankInfo.tagInfo = kfRoleData;
                            }
                            rankList.Add(rankInfo);
                        }
                    }
                    if (null != CompRankDict)
                    {
                        TimeUtil.AgeByNow(ref CompRankDict.Age);
                    }
                    if (null != CompRankList)
                    {
                        TimeUtil.AgeByNow(ref CompRankList.Age);
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #23
0
        public bool EraDonate(int juntuanid, int taskid, int var1, int var2, int var3)
        {
            bool result;

            lock (this.Mutex)
            {
                if (0 == this.RuntimeData.CurrentEraID)
                {
                    result = false;
                }
                else
                {
                    KuaFuData <KFEraData> data = null;
                    if (!this.EraDataDict.TryGetValue(juntuanid, out data))
                    {
                        result = false;
                    }
                    else
                    {
                        EraTaskConfig taskConfig = null;
                        lock (this.RuntimeData.Mutex)
                        {
                            if (!this.RuntimeData.EraTaskConfigDict.TryGetValue(taskid, out taskConfig))
                            {
                                return(false);
                            }
                        }
                        if (taskConfig.EraID != this.RuntimeData.CurrentEraID)
                        {
                            result = false;
                        }
                        else
                        {
                            EraTaskData taskData = data.V.EraTaskList.Find((EraTaskData x) => x.TaskID == taskid);
                            if (null == taskData)
                            {
                                taskData        = new EraTaskData();
                                taskData.TaskID = taskid;
                                data.V.EraTaskList.Add(taskData);
                            }
                            if (this.CheckTaskComplete(taskData, taskConfig))
                            {
                                result = true;
                            }
                            else
                            {
                                for (int dataidx = 0; dataidx < taskConfig.CompletionCondition.Count; dataidx++)
                                {
                                    int conditionNum = taskConfig.CompletionCondition[dataidx].Value;
                                    switch (dataidx)
                                    {
                                    case 0:
                                        taskData.TaskVal1 = Math.Min(taskData.TaskVal1 + var1, conditionNum);
                                        break;

                                    case 1:
                                        taskData.TaskVal2 = Math.Min(taskData.TaskVal2 + var2, conditionNum);
                                        break;

                                    case 2:
                                        taskData.TaskVal3 = Math.Min(taskData.TaskVal3 + var3, conditionNum);
                                        break;
                                    }
                                }
                                if (this.CheckTaskComplete(taskData, taskConfig))
                                {
                                    if (this.HandleAddEraProcess(data, taskConfig))
                                    {
                                        this.SaveEraData(data.V, true);
                                    }
                                }
                                else
                                {
                                    this.SaveEraData(data.V, false);
                                }
                                this.SaveEraTaskData(juntuanid, taskData);
                                TimeUtil.AgeByNow(ref data.Age);
                                result = true;
                            }
                        }
                    }
                }
            }
            return(result);
        }
Example #24
0
        public bool LoadRebornRankInfo(int rankType, KuaFuData <Dictionary <int, List <KFRebornRankInfo> > > RebornRankDict)
        {
            bool result;

            if (null == RebornRankDict)
            {
                result = false;
            }
            else
            {
                List <KFRebornRankInfo> rankList = null;
                if (!RebornRankDict.V.TryGetValue(rankType, out rankList))
                {
                    rankList = (RebornRankDict.V[rankType] = new List <KFRebornRankInfo>());
                }
                else
                {
                    rankList.Clear();
                }
                try
                {
                    string strSql = this.FormatLoadRebornRankSql(rankType);
                    if (string.IsNullOrEmpty(strSql))
                    {
                        return(false);
                    }
                    MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KFRebornRankInfo rankInfo = new KFRebornRankInfo();
                        rankInfo.Key   = Convert.ToInt32(sdr["a"]);
                        rankInfo.Value = Convert.ToInt32(sdr["b"]);
                        rankInfo.PtID  = Convert.ToInt32(sdr["c"]);
                        KuaFuData <KFRebornRoleData> kfRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(rankInfo.PtID, rankInfo.Key), out kfRoleData))
                        {
                            string             worldRoleID   = ConstData.FormatWorldRoleID(rankInfo.Key, rankInfo.PtID);
                            KuaFuWorldRoleData worldRoleData = TSingleton <KuaFuWorldManager> .getInstance().LoadKuaFuWorldRoleData(rankInfo.Key, rankInfo.PtID, worldRoleID);

                            if (null != worldRoleData)
                            {
                                int KFZoneID = ConstData.ConvertToKuaFuServerID(worldRoleData.ZoneID, worldRoleData.PTID);
                                rankInfo.Param1  = KuaFuServerManager.FormatName(kfRoleData.V.RoleName, KFZoneID);
                                rankInfo.Param2  = worldRoleData.Channel;
                                rankInfo.UserID  = worldRoleData.UserID;
                                rankInfo.tagInfo = kfRoleData;
                            }
                        }
                        rankList.Add(rankInfo);
                    }
                    if (null != RebornRankDict)
                    {
                        TimeUtil.AgeByNow(ref RebornRankDict.Age);
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #25
0
        private bool HandleAddEraProcess(KuaFuData <KFEraData> data, EraTaskConfig taskConfig)
        {
            bool result;

            if (taskConfig.EraStage != (int)data.V.EraStage)
            {
                result = false;
            }
            else
            {
                int oldEraStageProcess = data.V.EraStageProcess;
                int oldEraStage        = (int)data.V.EraStage;
                data.V.EraStageProcess = Math.Min(data.V.EraStageProcess + taskConfig.Reward, 100);
                if (data.V.EraStageProcess == 100 && data.V.EraStage < 4)
                {
                    data.V.EraStage        = (byte)Math.Min((int)(data.V.EraStage + 1), 4);
                    data.V.EraStageProcess = 0;
                    AsyncDataItem evItem = new AsyncDataItem(KuaFuEventTypes.JunTuanEraStage, new object[]
                    {
                        data.V.JunTuanID
                    });
                    ClientAgentManager.Instance().BroadCastAsyncEvent(GameTypes.JunTuan, evItem, 0);
                    data.V.EraTimePointList.Add(TimeUtil.NowDateTime());
                }
                if (data.V.EraStageProcess == oldEraStageProcess && (int)data.V.EraStage == oldEraStage)
                {
                    result = false;
                }
                else
                {
                    if (data.V.EraStageProcess == 100 && data.V.EraStage == 4)
                    {
                        data.V.EraTimePointList.Add(TimeUtil.NowDateTime());
                    }
                    this.HandleFastEraStage(data.V);
                    bool          needSort = false;
                    KFEraRankData rankData = this.EraRankList.V.Find((KFEraRankData x) => x.JunTuanID == data.V.JunTuanID);
                    if (null != rankData)
                    {
                        needSort                 = true;
                        rankData.JunTuanID       = data.V.JunTuanID;
                        rankData.EraStage        = data.V.EraStage;
                        rankData.EraStageProcess = data.V.EraStageProcess;
                        rankData.RankTime        = TimeUtil.NowDateTime();
                    }
                    else if (this.EraRankList.V.Count < 5)
                    {
                        needSort                 = true;
                        rankData                 = new KFEraRankData();
                        rankData.JunTuanID       = data.V.JunTuanID;
                        rankData.EraStage        = data.V.EraStage;
                        rankData.EraStageProcess = data.V.EraStageProcess;
                        rankData.RankTime        = TimeUtil.NowDateTime();
                        this.EraRankList.V.Add(rankData);
                    }
                    else
                    {
                        KFEraRankData minRankData = this.EraRankList.V[this.EraRankList.V.Count - 1];
                        if (data.V.EraStage > minRankData.EraStage || (data.V.EraStage == minRankData.EraStage && data.V.EraStageProcess > minRankData.EraStageProcess))
                        {
                            needSort = true;
                            minRankData.JunTuanID       = data.V.JunTuanID;
                            minRankData.EraStage        = data.V.EraStage;
                            minRankData.EraStageProcess = data.V.EraStageProcess;
                            minRankData.RankTime        = TimeUtil.NowDateTime();
                        }
                    }
                    if (needSort)
                    {
                        this.EraRankList.V.Sort(delegate(KFEraRankData left, KFEraRankData right)
                        {
                            int result2;
                            if (left.EraStage > right.EraStage)
                            {
                                result2 = -1;
                            }
                            else if (left.EraStage < right.EraStage)
                            {
                                result2 = 1;
                            }
                            else if (left.EraStageProcess > right.EraStageProcess)
                            {
                                result2 = -1;
                            }
                            else if (left.EraStageProcess < right.EraStageProcess)
                            {
                                result2 = 1;
                            }
                            else if (left.RankTime < right.RankTime)
                            {
                                result2 = -1;
                            }
                            else if (left.RankTime > right.RankTime)
                            {
                                result2 = 1;
                            }
                            else
                            {
                                result2 = 0;
                            }
                            return(result2);
                        });
                        for (int loop = 0; loop < this.EraRankList.V.Count; loop++)
                        {
                            this.EraRankList.V[loop].RankValue = loop + 1;
                        }
                        TimeUtil.AgeByNow(ref this.EraRankList.Age);
                    }
                    result = true;
                }
            }
            return(result);
        }