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