本帖最后由 darkwinddk 于 2010-12-6 21:37 编辑
http://cs.elderscrolls.com/constwiki/index.php/FormID formID formid 是用来确定上古4中一个object的一个十六位进制数。在cs中一个object可以通过它的editorID来确定,但是在游戏的控制台中你必须用formID 来确定一个object formID 的格式 formID的前两位是mod索引,而剩下的六位则是是object的索引。Object索引的号码在每一个mod中都是唯一的,也就是说在一个mod中不可能存在两个formID相同的object,否则你将会遇到“严重错误”的信息 mod索引反应的是这个mod在当前游戏环境的载入顺序 当我们打开cs后mod索引反应的只是当前被载入的文档,典型的就是你的mod和这个mod的主文件。作为一个典型的mod即这个mod的主文件只有一个那就是oblivion.esm.。在这种情况下,oblivion。Esm将优先被载入,所以它的mod索引就是00 ,而你的mod将会被第二个载入所以它的mod索引就是01。在另一个例子中,如果一个mod有3个不同的主文件那么它的主文件的mod索引就是00 01 02 而你的mod的mod索引就是 03 在游戏中mod索引反应的是你的mod的载入顺序。游戏总是首先载入oblivion.esm,所以他总是占据00 这个mod索引的号码一个mod在第十个被载入(包括oblivion.esm)那么它的mod索引就是09 而一个mod在被第37个载入那么它的mod索引就是24 (注意:为什么不是37呢?因为游戏采用的是16位进制)等等。控制台中在一个formID能够被识别之前,它的mod索引必须被更新从而和该mod在载入顺序中的位置相匹配。(详细请参考determining in-game modindex这篇文章) 查找 formID FormID栏的位置在cs的object window(窗口) editorID栏的右边。但是一般他被设置为隐藏 见下图 图中我们可以看到红色圆圈内有极小一个标题栏,我们把它扩大如下图就可以看到formID栏了,在这张图中我们可以看到giantswordofpwn的formID是02000CEB 控制台的使用 假如我们的我们在图中所看到的那个object所在的mod被载入的次序是第15个(十六进制中15就是0F)那么在游戏中这个object的mod索引就会被更新为0F
而整一个object的formID就是0F000CE8 如果我们在控制台中输入 player.additem 0F000CE8 我们就能得到这个object了。 查询在游戏中的mod索引 方法一 使用sc查询 方法二 使用 wrye bash 查询 方法三 使用 obmm 查询 (原英文教程中讲的比较详细,有兴趣可以自己看。感觉挺难翻译的就没翻译,水平不够抱歉) 脚本 在脚本中确定一个object的方法最好使用editorID ,而不要使用formID 因为使用formID会随着mod的载入顺序的变化而变化,从而导致脚本无法执行,或执行错误。这是一个比较常见的脚本错误。 |