有任何上古卷轴的问题,请直接到MOD社区发帖求助

Fundament 简介

名字:Fundament
分类:游戏调整/升级
需求:Oblivion 1.2.0416
作者:tejon, migck
原址:Oblivion Nexus


本来不打算发的,但是两个月之前就答应好了,真的不知道该怎么写。所以只是简单介绍。至于到底对升级系统做了哪些调整,那已经超过我的能力范围了……甚至连下载都没有,如果需要下载的自己到 Oblivion Nexus 下载,这个文件小到不用登录就能下载。而且此  MOD 今年还是会更新的,所以我就不分流旧版本了。

另外,有人会问这个是干嘛的,简单解释一下:这个算是半个升级MOD,主要用来改变升级速率的。如果和角色升级系统 nGCD 一起使用,就是“双剑合璧”,甚至可以“一统江湖”了。 同时是 FCOM 官方强烈推荐的升级 MOD 方案,相对于 Oblivion XP 当然效果更好,而且 bug 也比较少。所以,强烈建议安装完这个后再安装 nGCD

介绍

就最基本上而言,Fundament 是用来替代一系列小型插件的,包括其前身 Progress 。通过简单的文件设置,玩家可以修改升级速率、游戏设置,甚至是 Oblivion.ini 的设定(而且不会对文件进行任何修改)。Fundament 仅调整你在 INI 文件中指定的内容,未制定的内容不做任何修改。如果 Fundament.ini 是空白的话,Fundament 对游戏不会有任何修改(就像根本没安装 Fundament 一样),而且,你可以给不同的角色分配不同的设定。

Fundament 由许多脚本构成,可以修改游戏中的诸多内容,这些都被整合到单独的一个 ESP 中,即 Bundlement.esp ,不过每一个独立的功能还是可以独立打开或者关闭的。详细的内容看配置文件里面的说明,下面是简单介绍:

  • Global Rate Control:基础技能速率和训练消耗的控制,包括实时更改的选项。
  • Magic Prices:调节附魔、创造或者购买魔法的金币消耗。
  • Racial Talents:种族对应的技能同时随升级变化。
  • Variable Advancement: Armorer:锻造技能取决于每次攻击被修复的次数
  • Variable Advancement: Marksman:点数取决于目标的距离,受益于潜击。
  • Variable Advancement: Melee:更多的武器获得更多的技能,受益于猛击和潜击。
  • Variable Advancement: Mercantile:速率随交易值和商人的技能会有相应的变化,购买魔法可以获得技能。
  • Variable Advancement: Spells:每个效果都可获得点数,施放魔法后获得点数,基于法力大小、范围等等。

高级选项

Fundament 同样也是 Modder 工具。长话短说,Oblivion 引擎在游戏中无法预测其内部数值的变化。游戏对于数值的修改是存在一个限制的:用户是无法修改的,所以这个缺陷也就无所谓了。但是后来 OBSE 解决了这个限制,于是副作用便随之而来,简单说,只要有一个脚本修改了某个数值,那么其他脚本将永远无法知道该数值的初始值是多少。甚至地,重新读挡后,最初修改数值的那个脚本也会忘了该数值的初始值。临时的,或者是随时间而变化的数值会导致基本数值出错,从而导致数据错乱。

基于 Fundament 的模组是不会有这种问题的,你可以对同一个设置进行多种形式的修改,而 Fundament 将帮您调整。任何时间您读档或者退出到主菜单,Fundament 都会把设置恢复到初始值,从而解决上面提到的问题。这些功能全部是借助自定义函数,比直接的OBSE脚本更容易书写、阅读。而且,借助 Fundament 初始化系统的特有功能,MOD 不依赖 Fundament 作为 Master 也是可以对其数据进行修改的。

最后,Fundament 整合了 Formulator,这是一个可以自我管理的 CloneForms 数据库,此工具大大简化了游戏避免 Bloat 的后台任务。

兼容性

Fundament 其实可以与任何模组完全兼容,虽然还是有些 MOD 不兼容,从根本上说,加载在前的 MOD 会不知道它正在使用的数据是否已经被 Fundament 调整过了。然而,Fundament 会在这些 MOD 之前初始化(关于这点,作者保证 100% 有效),所以 Fundament 还是能够很好的控制你的配置中定义的内容,而其他MOD读取的基本数值依旧是你设置的那些数值(事实上,即使你没有修改过这些数值,它还是会记录初始技能值,并且像上面提到的,适时重置)。

不过,需要警示一下:Fundament 在游戏过程中是不会强制修改数值的,这是故意这么设计的。一般情况下是有好处的,但同时也意味着如果一个 MOD 在 Fundament 初始化之后又对那些数值做了修改,那么该 MOD “获胜”。实际使用中,这意味着你没必要使用 Fundament 管理那些被脚本所修改的调整。

简单说,规则就是如果某个 MOD 存在ini,并且通过ini文件修改游戏设置,并且该 MOD 不是基于 Fundament 的,那么该 MOD 就获胜了。

一些常见的例子(只是说 Fundament 在下面情况下会失去部分功能,不是说绝对不能共存):

  • Progress,修改了升级速率以及部分相关的 GMST 设置。(Fundament 其实是 Progress 的升级版,不过从技术角度讲,这两个还是可以共存的);
  • ABO 的 Realistic Fatigue 和 tejon 的 FatigueEffects ,因为修改了体力方面的设置。
  • Supreme Magicaka,因为修改了一些跟魔法相关的设置。

注意:Fundament 是兼容于 Nehrim,但是ini中的设置都是基于 Oblivion 。

安装

Wrye Bash 可以直接安装,你也可以用 OBMM 转换成 OMOD 再安装。

如果是手动安装的,就把压缩包解压到 Oblivion\Data 目录内。

你会发现 Oblivion\Data 目录内有 Fundament.esm 和 Bundlement.esp,同时 Oblivion\Data\Ini 目录内有许多配置文件。你必须激活 Fundament.esm。至于 Bundlement.esp,则视情况而定。

运行游戏后,在进入主菜单时你会听到“咻”的一声,同时在左上角显示“Fundament Established”(此设置可以在 FundamentGlobal.ini 中设定)

到这边,你的 Fundament 算是成功安装并且开始工作了,但实际上还不会有任何效果,你需要再配置 INI 文件。

卸载

Fundament 不会对游戏造成任何永久性修改,所以你任何时候都可以直接卸载,Bundlement 的情况也是一样的。

配置文件

Fundament 的核心是配置文件的设置,不过内容太多,这边只是简单的说明一下……不过担心,默认的设置够你用的了。

进入 Oblivion\Data\INI 内,你会发现多了很多个Ini文件:
FundamentGlobal.ini、Fundament.ini、Fundament – Game Settings.ini、Fundament – INI Settings.ini、Fundament – Skill Rates.ini;
Bundlement.ini、Bundlement – XXX.ini。

FundamentGlobal 在 Fundament 注册完事件处理句柄后执行,通常是你在进入主菜单后马上执行,里面只有两个设定(不建议自己乱增加),一个是设定显示信息“Fundament Established”,还有一个是设定播放音效130(即 MagicFailureSoundMysticism ,声音类似于“咻…咚”)在这两个设定下,您会在游戏主菜单中中听到“咻…咚”的一声同时左上角信息显示“Fundament Established”。如果你没看到这两种提示,那就意味着 Fundament 启动失败,你应该排查下问题再继续游戏。

Fundament.ini 作为整个系统的核心文件,也是 Fundament.esm 直接加载的唯一一个文件。这意味着:如果你想要加载 Game Settings、INI Settings、Skill Rates,请一律借助 Fundament.ini 来加载。同时你也可以在里面添加一些自己的配置。

Fundament – Game Settings.ini 需要依赖 Fundament.ini 才能加载,但是加载了也不会生效,因为里面的内容都是空的(前面出现符号“ ; ”,也就是说被注释掉了)。比如文件内的第一个设定,修改弓箭的速度:

; Arrows move very slow in Oblivion. The vanilla 2000 units per second equates
; to under 100 feet per second. Here, 3200 creates a speed of 150 feet/sec, the
; bare minimum for a realistic bow.
;   set fd.GMST to sv_Construct     "fArrowSpeedMult"
;   set fd.Value to                 3200
;   setstage fd 1

你需要把每一行最前面的 ; 去掉才能生效,也就是(本文中,开头为 ; 并且为绿色的内容表示都是无效的,想要生效的必须把 ; 去掉。)

; Arrows move very slow in Oblivion. The vanilla 2000 units per second equates
; to under 100 feet per second. Here, 3200 creates a speed of 150 feet/sec, the
; bare minimum for a realistic bow.
   set fd.GMST to sv_Construct     "fArrowSpeedMult"
   set fd.Value to                 3200
   setstage fd 1

注意:最上面三行是说明,千万不要处理。如果不知道从哪一行开始处理,你就找第一次出现 set 的那一行。

Fundament – INI Settings.ini 与 Fundament – Game Settings.ini 是一样的情况,默认也不加载,默认内容也是空的,加载与生效方法与 Game Settings 一样。此文件修改的是 Oblivion.ini 的内容,而 Game Settings 修改的则是 GMST 的内容。

Fundament – Skill Rates.ini 与上面两个情形一样,此文件修改游戏升级速率,大部分效果跟 OOO 差不多,不过基于用户安装了 Bundlement 所有内容的前提下又做了调整,另外,虽然升级速率是基于 OOO ,但快慢还是跟原版一样的,也就是 x1(OOO 是 x3),然后你还可以通过文件 Bundlement – GRC.ini 文件设定快慢。(要求 Fundament – Skill Rates.ini 与 Bundlement – GRC.ini 一起使用,而不是 Bundlement – GRC (Oscuro’s).ini)。

Bundlement 是系统的另一个部分,我自己的理解是 Fundament 创建一套系统用来修改 GMST 和 Ini,而 Bundlement 则是这个系统赠送的配置好的套装。

Bundlement.ini 需要 Bundlement.esp 才能加载,此文件可以当作是 FundamentGlobal.ini 和 Fundament.ini 的合体,一方面控制提示信息、音效,另外一方面则用来加载 INI 文件。

Bundlement – XXX.ini 里面一共有 9 个文件,GRC 有两个,Bundlement – GRC.ini 是原版,Bundlement – GRC (Oscuro’s).ini 是 OOO 版。GRC 即 Global Rate Control 的缩写,所以 Bundlement – GRC.ini、Bundlement – Magic Prices.ini 等等文件究竟是干啥的,请往上翻,本页顶部已经写了。

到这边,每个 INI 的作用已经讲清楚了。接下来说一些实用点的:

如果没有特殊情况的,推荐安装 Fundament.esm 和 Bundlement.esp。

打开 Fundament.ini,找到

; Uncommenting the two lines below will load recommended skill advancement
; settings, similar to the defaults previously supplied with Progress.
;   set fd.File to sv_Construct "Fundament - Skill Rates"
;   setstage fd 1

改为

; Uncommenting the two lines below will load recommended skill advancement
; settings, similar to the defaults previously supplied with Progress.
   set fd.File to sv_Construct "Fundament - Skill Rates"
   setstage fd 1

打开 Bundlement.ini 找到

; set fd.File to sv_Construct "Bundlement - GRC"
; setstage fd 1

; set fd.File to sv_Construct "Bundlement - Magic Prices"
; setstage fd 1

; set fd.File to sv_Construct "Bundlement - Racial Talents"
; setstage fd 1

; set fd.File to sv_Construct "Bundlement - VA Armorer"
; setstage fd 1

; set fd.File to sv_Construct "Bundlement - VA Marksman"
; setstage fd 1

; set fd.File to sv_Construct "Bundlement - VA Melee"
; setstage fd 1

; set fd.File to sv_Construct "Bundlement - VA Mercantile"
; setstage fd 1

; set fd.File to sv_Construct "Bundlement - VA Spells"
; setstage fd 1

改为

 set fd.File to sv_Construct "Bundlement - GRC"
 setstage fd 1

 set fd.File to sv_Construct "Bundlement - Magic Prices"
 setstage fd 1

 set fd.File to sv_Construct "Bundlement - Racial Talents"
 setstage fd 1

 set fd.File to sv_Construct "Bundlement - VA Armorer"
 setstage fd 1

 set fd.File to sv_Construct "Bundlement - VA Marksman"
 setstage fd 1

 set fd.File to sv_Construct "Bundlement - VA Melee"
 setstage fd 1

 set fd.File to sv_Construct "Bundlement - VA Mercantile"
 setstage fd 1

 set fd.File to sv_Construct "Bundlement - VA Spells"
 setstage fd 1

然后注意一些插件的兼容性,比如

  • 安装了 Enhanced Economy 的,Bundlement – VA Mercantile 那两行的 ; 就不要去掉。
  • 安装了 Supreme Magicka 的,Bundlement – VA Spells 那两行的 ; 就不要去掉。

接下来再简单说下 INI 文件的设定(详细部分请自行参考 Fundament.ini )

首先是不同的玩家角色可以使用不同的配置文件,比如 Bendu Olo 的配置可以放在 Data\ini\Bendu Olo\ 里面,Elsa 的配置可以放在 Data\ini\Elsa 里面,依此类推

放在 Data\ini\ 的是所有玩家共用的,同时,Data\ini\Bendu Olo\ 会覆盖 Data\ini\ 的设定

Fundament 一条命令通常是通过一到多个指令来实现

常见的一条指令是

set fd.debug to 0

用来设置调试等级

set fd.debugConScribe to 1

用来设置 Conscribe 调试等级

set fd.DebugOBSE to -1

用来设置 OBSE 调试等级

常见的两条指令是

set fd.File to sv_Construct "Fundament - Skill Rates"
setstage fd 1

用来加载 Fundament – Skill Rates.ini 文件(这个上面讲到了)

三条指令以后的接触会比较频繁,如

set fd.GMST to sv_Construct     "fArrowSpeedMult"
set fd.Value to                 3200
setstage fd 1

还有更多指令的,但一般很少遇到。

比较两条指令和三条的,可以很容易就知道

以上面的为例,Fundament 的第一条指令是用来定义变量(GMST 类型的 fArrowSpeedMult),第二条指令用来定义变量值(3200),第三条则用来激活(setstage fd 1),下面是详细介绍

可使用的变量类型有四种:

1、用来修改 GMST 的,使用 set fd.GMST to sv_Construct “GMST 名称”,比如下面这个是修改 iTrainingCostMult

set fd.GMST to sv_Construct "iTrainingCostMult"

2、用来修改 Oblivion.ini 的,使用 set fd.Ini to sv_Construct “项目:部分”,比如我想修改 Oblivion.ini 中 Display 内 fGamma 的数值,可以使用

set fd.Ini to sv_Construct "fGamma:Display"

3、用来修改升级速率的,使用 set fd.Use to sv_Construct “技能名称”,所以下面这个是修改 Hand To Hand 的

set fd.Use to sv_Construct "Hand To Hand"

4、用来加载全局或者玩家专属INI文件,使用 set fd.File to sv_Construct “Ini 文件名”, 比如

set fd.File to sv_Construct "Fundament - Skill Rates"

是用来加载 Fundament – Skill Rates.ini 文件

然后,以上四个,除了 File 以外的,其他的你都可以进一步定义数值,也就是 set fd.Value to “你要的数值” ,如果不设置的话,会使用默认数值 0 。

紧接着是一个不是很常用到的指令:set fd.Which to “0 或者 1″。
因为每个技能都会有不同的使用方式,默认使用的是 0 ,如果你需要修改的则使用 1 ,如:

set fd.Use   to sv_Construct    "25"            ; 恢复系
set fd.Value to                 0               ; 施放魔法
setstage fd 1
set fd.Use   to sv_Construct    "25"            ; 恢复系
set fd.Which to                 1               ; 魔法击中
set fd.Value to                 1.0
setstage fd 1

最后,只要是上面四种类型的变量,你都必须在后面加上 setstage fd 1 才能生效。
至于其他类型的,可以不添加,所以 set fd.DebugOBSE to -1 不需要添加 setstage fd 1 。

还有一些比较高级的使用,感兴趣的可以阅读 Fundament.ini

之前我们有说过 AV Uncapper 的 ESP 插件可以使用 Fundament 来替换,下面是外国网友制作的替换方案,把内容复制到 Fundament.ini 底部就可以删掉 JCN_AV Uncap.esp 了

; Settings (source: JCN_AV Uncap.esp)
; global stats uncapping
    set fd.GMST to sv_Construct "iavuMaxAttributeBase"
    set fd.Value to 200                 ; vanilla 100, recommended uncapped 200
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuMaxSkillBase"
    set fd.Value to 200                 ; vanilla 100, recommended uncapped 200
    SetStage fd 1

; special stats uncapping
    set fd.GMST to sv_Construct "favuMaxHandDamageAttribute"
    set fd.Value to 0                   ; vanilla 100, uncapped 0
    SetStage fd 1

    set fd.GMST to sv_Construct "favuMaxWeaponDamageAttribute"
    set fd.Value to 0                   ; vanilla 100, uncapped 0
    SetStage fd 1

    set fd.GMST to sv_Construct "favuMaxAlchemyEffectiveSkill"
    set fd.Value to 0                   ; vanilla 100, uncapped 0
    SetStage fd 1

    set fd.GMST to sv_Construct "favuMaxCasterSkillCostSkill"
    set fd.Value to 0                   ; vanilla 100, uncapped 0
    SetStage fd 1

    set fd.GMST to sv_Construct "favuMaxDetectionSneakSkill"
    set fd.Value to 0                   ; vanilla 100, uncapped 0
    SetStage fd 1

    set fd.GMST to sv_Construct "favuMaxHandDamageSkill"
    set fd.Value to 0                   ; vanilla 100, uncapped 0
    SetStage fd 1

    set fd.GMST to sv_Construct "favuMaxWeaponDamageSkill"
    set fd.Value to 0                   ; vanilla 100, uncapped 0
    SetStage fd 1

    set fd.GMST to sv_Construct "favuMaxWornArmorSkill"
    set fd.Value to 0                   ; vanilla 100, uncapped 0
    SetStage fd 1

    set fd.GMST to sv_Construct "fMaxArmorRating"
    set fd.Value to 95.0                ; vanilla 85.0, DP - Melee Combat 95.0
    SetStage fd 1

    set fd.GMST to sv_Construct "fBlockMax"
    set fd.Value to 1.00                ; vanilla 0.75, DP - Melee Combat 1.0
    SetStage fd 1

; Dimishing returns
; enable/disable (1/0)
    set fd.GMST to sv_Construct "iavuBlindnessUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuBlockDamageReductionUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuChameleonUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuDefendBonusUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuMagicCasterSkillCostUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuMagicEffectResistUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuMagicItemResistUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuReflectDamageUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuResistNormalWeaponsUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuSpellAbsorbUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

    set fd.GMST to sv_Construct "iavuSpellReflectUseDR"
    set fd.Value to 1                   ; default 0
    SetStage fd 1

; Dimishing returns
; settings (exp. decayrate: 1.85, 1.12, 0.7, 0.54, 0.4; exp. growthrate: 0.36, 0.83, 2.25, 3.0, 4.5)
    set fd.GMST to sv_Construct "favuBlindnessDecayRate"
    set fd.Value to 1.12                ; default 1.12
    SetStage fd 1
    set fd.GMST to sv_Construct "favuBlindnessGrowthRate"
    set fd.Value to 0.83                ; default 0.83
    SetStage fd 1

    set fd.GMST to sv_Construct "favuBlockDamageReductionDecayRate"
    set fd.Value to 1.12                ; default 1.12
    SetStage fd 1
    set fd.GMST to sv_Construct "favuBlockDamageReductionGrowthRate"
    set fd.Value to 0.83                ; default 0.83
    SetStage fd 1

    set fd.GMST to sv_Construct "favuChameleonDecayRate"
    set fd.Value to 1.12                ; default 1.12
    SetStage fd 1
    set fd.GMST to sv_Construct "favuChameleonGrowthRate"
    set fd.Value to 0.83                ; default 0.83
    SetStage fd 1

    set fd.GMST to sv_Construct "favuDefendBonusDecayRate"
    set fd.Value to 1.12                ; default 1.12
    SetStage fd 1
    set fd.GMST to sv_Construct "favuDefendBonusGrowthRate"
    set fd.Value to 0.83                ; default 0.83
    SetStage fd 1

    set fd.GMST to sv_Construct "favuMagicEffectResistDecayRate"
    set fd.Value to 1.12                ; default 1.12
    SetStage fd 1
    set fd.GMST to sv_Construct "favuMagicEffectResistGrowthRate"
    set fd.Value to 0.83                ; default 0.83
    SetStage fd 1

    set fd.GMST to sv_Construct "favuMagicItemResistDecayRate"
    set fd.Value to 1.12                ; default 1.12
    SetStage fd 1
    set fd.GMST to sv_Construct "favuMagicItemResistGrowthRate"
    set fd.Value to 0.83                ; default 0.83
    SetStage fd 1

    set fd.GMST to sv_Construct "favuReflectDamageDecayRate"
    set fd.Value to 1.12                ; default 1.12
    SetStage fd 1
    set fd.GMST to sv_Construct "favuReflectDamageGrowthRate"
    set fd.Value to 0.83                ; default 0.83
    SetStage fd 1

    set fd.GMST to sv_Construct "favuResistNormalWeaponsDecayRate"
    set fd.Value to 1.12                ; default 1.12
    SetStage fd 1
    set fd.GMST to sv_Construct "favuResistNormalWeaponsGrowthRate"
    set fd.Value to 0.83                ; default 0.83
    SetStage fd 1

    set fd.GMST to sv_Construct "favuSpellAbsorbDecayRate"
    set fd.Value to 1.12                ; default 1.12
    SetStage fd 1
    set fd.GMST to sv_Construct "favuSpellAbsorbGrowthRate"
    set fd.Value to 0.83                ; default 0.83
    SetStage fd 1

    set fd.GMST to sv_Construct "favuSpellReflectDecayRate"
    set fd.Value to 1.12                ; default 1.12
    SetStage fd 1
    set fd.GMST to sv_Construct "favuSpellReflectGrowthRate"
    set fd.Value to 0.83                ; default 0.83
    SetStage fd 1

    set fd.GMST to sv_Construct "favuMagicCasterSkillCostSkillOffset"
    set fd.Value to 33.3                ; default 33.3
    SetStage fd 1

    set fd.GMST to sv_Construct "fActorLuckSkillMult"
    set fd.Value to 0                   ; vanilla 0.4, default 0
    SetStage fd 1
    set fd.GMST to sv_Construct "favuActorLuckSkillDecayRate"
    set fd.Value to 1.02                ; vanilla 0, default 1.02
    SetStage fd 1
    set fd.GMST to sv_Construct "favuActorLuckSkillGrowthRate"
    set fd.Value to 0.831               ; vanilla 0, default 0.831
    SetStage fd 1
    set fd.GMST to sv_Construct "favuActorLuckSkillOffset"
    set fd.Value to 50.0                ; default 50.0
    SetStage fd 1

; additional settings
    set fd.GMST to sv_Construct "favuAlchemyEffectiveSkillBaseMult"
    set fd.Value to 1                   ; vanilla 1
    SetStage fd 1
    set fd.GMST to sv_Construct "favuAlchemyEffectiveSkillCurrentMult"
    set fd.Value to 0                   ; vanilla 0
    SetStage fd 1

    set fd.GMST to sv_Construct "favuReflectDamageProjectileMult"
    set fd.Value to 0                   ; vanilla 0
    SetStage fd 1
icedream

About icedream

其实我知道的东西很少,只是翻译了一些东西,悲催的是翻译过后很快就忘了。

3 Responses to Fundament 简介

  1. barnardxyz 2013 年 6 月 7 日 at 下午 2:36 #

    娃哈哈~~终于出来了,蓝大一诺千金

    • icedream 2013 年 6 月 7 日 at 下午 6:08 #

      这部分真的不是很懂,有不足的请将就。

  2. Elzee 2013 年 6 月 15 日 at 上午 12:43 #

    既然有这么详细的介绍,那我就试试ngcd。