public static RoleParamType GetRoleParamType(string paramName, string value = null)
        {
            RoleParamType roleParamType;

            lock (RoleParamNameInfo.readerWriterLock)
            {
                if (GameDBManager.Flag_Splite_RoleParams_Table != 0)
                {
                    if (RoleParamNameInfo.RoleParamNameTypeDict.TryGetValue(paramName, out roleParamType))
                    {
                        return(roleParamType);
                    }
                    int key;
                    if (int.TryParse(paramName, NumberStyles.None, NumberFormatInfo.InvariantInfo, out key) && key >= 0)
                    {
                        if (key < 10000)
                        {
                            int rem;
                            Math.DivRem(key, 10, out rem);
                            roleParamType = new RoleParamType(paramName, paramName, "t_roleparams_char", "idx", "v" + rem, key - rem, key, 2);
                        }
                        else if (key < 20000)
                        {
                            int rem;
                            Math.DivRem(key, 40, out rem);
                            roleParamType = new RoleParamType(paramName, paramName, "t_roleparams_long", "idx", "v" + rem, key - rem, key, 2);
                        }
                        else
                        {
                            roleParamType = new RoleParamType(paramName, paramName, "t_roleparams_2", "pname", "pvalue", key, key, 0);
                        }
                    }
                    else
                    {
                        if (RoleParamNameInfo.GetPrefixParamNameType(paramName) == null && (!RoleParamNameInfo.RoleParamNameTypeExtDict.TryGetValue(paramName, out roleParamType) || roleParamType.Type != -1))
                        {
                            string msg = string.Format("使用了未配置的角色参数:{0},{1}", paramName, value);
                            MyConsole.WriteLine(msg, new object[0]);
                            LogManager.WriteLog(LogTypes.Error, msg, null, true);
                        }
                        roleParamType = new RoleParamType(paramName, paramName, "t_roleparams_2", "pname", "pvalue", 0, 0, 0);
                    }
                    RoleParamNameInfo.RoleParamNameTypeDict[paramName] = roleParamType;
                }
                else
                {
                    if (RoleParamNameInfo.OldRoleParamNameTypeDict.TryGetValue(paramName, out roleParamType))
                    {
                        return(roleParamType);
                    }
                    roleParamType = new RoleParamType(paramName, paramName, "t_roleparams", "pname", "pvalue", 0, 0, 0);
                    RoleParamNameInfo.OldRoleParamNameTypeDict[paramName] = roleParamType;
                }
            }
            return(roleParamType);
        }