域名将于6月份到期,并且不再续费,届时网站将无法访问。
6月份之前如果服务器到期将提前关闭网站,请改访问模组网社区

自动天际重制补丁生成器

这个Mod是为使用天际重制Mod的人准备的。由于天际重制改变了原版的许多设置,所以和其他Mod在兼容上有问题(主要是武器护甲类)。通过这个Mod可以自动让其他Mod的内容符合到天际重制的规则。当然某些情况下你还要手动调整(具体不多说了,请有需要的人自己看吧)。

ReProccer

如果你知道这个Mod,你可以先看看我翻译的关于它的漫画:论ReProccer的重要性,深入介绍一个MOD是为何牛X的

原始地址:ReProccer – Automated SkyRe patch generator
作者:T3nd0

以下内容翻译自自原始地址的内容:

看看这个小虫虫:WTF – Random Encounter Zones (译注:该作者做的一个遭遇敌人等级随机的Mod,同样是SkyProc类的,广告)

假如你想要告诉我你多么喜欢我的“搞笑”漫画,到这里去:T3nd0’s Shitty Comic Shack(需要翻墙)

Yeah,都是我最近比较闲瞎弄出来的玩意儿,觉得无聊也表怪偶。

有一篇关于分享XML文件的文章在”Discussion”区域,自己去找,说不定有你要的

已知问题:

  • 某些人不去读讨论区域的置顶帖
  • TES5Edit在载入SkyRe时会显示 Record order errors(不影响游戏体验—所以我会友善地忽视它(这个没法修正了))

ReProccer

ReProccer – 为 SkyRe 做的,关于武器,护甲,药水还有弹药/材料的补丁工具或者生成器

图片的事不好意思了。我能买的起的最好的图片处理工具就是Windows自带的画图 lol

引子

ReProccer的目的是解决一个困扰了许多人(包括我)在天际重置中使用其他MOD的武器和护甲时遇到的不兼容问题的。炼金和弹药的问题少一点,但仍然存在。

在通过一个自动的可兼容的补丁后,程序会将大量的属性设置好;如果有人不喜欢我设置的武器和护甲属性,他/她可以自己通过几秒钟就把各种属性都设置成自己想要的。

需要 SkyRe_Main.esp, Skyrim.esm, Dawnguard.esm, Java Runtime Environment 7

这MOD能干嘛

  • 根据武器名字把武器分类(在mod XY里有一个叫”Katana(武士刀)”的武器在Patch之后会被天际重制辨认出来。
  • 根据一个“修改”列表把武器分类(强制武器被分类,比如名字判断不出来的)
  • 把武器属性和天际重制的等级同步-或者根据设置自定义。这些都基于材料和类型。
  • 把任何原版类型的剑改名为”Broadsword”(我不知道汉化是什么,不过差不多属于阔剑腰刀那种)
  • 根据材料或者名字,把所有弓改名并指定为”Shortbow(短弓)”或”Longbow(长弓)”分类。
  • 把所有mod添加的十字弩衍生成天际重制的十字弓。所以,如果一个MOD添加了一个Dragonbone Crossbow(龙骨十字弓),ReProccer会把它做成反曲弓,复合弓……等等版本,并支持技能点。还包括了锻造,强化以及熔铸的配方。
  • 将所有银质武器变化为“精致银”武器。同样包括锻造,强化和熔铸配方。
  • 根据类型和材料将弹药和炸弹的重力,速度和伤害调整。
  • 将所有弹药衍生成天际重制中可以使用的多个类型(炸弹,定时炸弹,闪光……)
  • 将护甲属性调整为符合天际重制等级的。同样的,材料重量都完全能调整。
  • 根据材料,将盾牌改名并相应的变成“轻”和“重”两种分类。
  • 设置新的护甲等级上限
  • 为护甲设置新的护甲值
  • 让“假面舞会”技能对mod增加的护甲生效
  • 强制把mod增加的护甲对应原版材料关键字
  • 为所有mod增加的皮质护甲添加锻造需求
  • 给所有盔甲/武器添加熔铸配方
  • 给所有熔铸配方增加材料技能点需求
  • 将所有炼金材料的效果变为持续性的,基于效果的名称。可高度自定义。
  • 可自行决定是否强制patch后的炼金材料的最小值/最大值,防止炼金材料太便宜或太昂贵

它(目前)不能做什么

  • 为武器的速度和距离增加基于材料的修改*

它做不到的

  • 不装SkyRe_Main.esp就能运行**
  • 不装黎明守卫就能运行
  • 不把Java运行环境升级到最新版本就能运行

* 目前在天际重制中还没有,但明显是以后的一个打算
** 如果以后有机会的话,我或许还会搞一个单独的属性大重制

安装

把包含的文件夹放入游戏的Data文件夹

这应该会建立一个新的文件夹:Skyrim/Data/SkyProc Patchers/T3nd0_ReProccer

ReProccer.jar是主要关注的东西。同时还有一个叫”ReProccer”的文件夹;包含”Stats.xml”,这个文件是用来设置整个程序的,同时这个地方还会在每次ReProccer运行后制作一个记录文件,如果我问你要一个记录,这个就是我要你给我的。

使用

双击ReProccer.jar,界面会打开。

左边,你会看到一段文字是”ReProccer Settings”。它前面的勾选框会决定是否对护甲,武器,弹药和炼金进行修改。

如果你的载入列表里没有ReProccer.esp,那么ReProccer会在退出或点击右上角的”Patch”按钮时自动制作一个,如果点击”Cancel”按钮就不会有任何事情发生。

如果你的载入列表已经有了一个,同时想重置一下补丁,勾选”Force Patch on Exit(退出时强制制作补丁)”,然后点击”Patch”或者退出。

每一个ReProccer建立的补丁都会导入你整个MOD载入列表,然后把所有对应MOD作为这个补丁的master。这代表你必须在每一次你卸载MOD的时候重新制作补丁;如果不这么做你会遇到CTD。

如果你添加了一个新MOD你希望把它也加入补丁中,重新运行ReProccer.jar制作一次补丁即可。

配置

基础

As mentioned, Stats.xml is used to configure the values used by the ReProccer. You should probably read up some basics on XML file structure before altering it…

就如上面所提到的,Stats.xml是ReProccer用来对数值属性做修改的东西。在修改之前你或许可能需要去读一些XML的基础知识。

…(译注:你去了?肯定不会……)

… on the other hand, it’s rather easy to understand with intuition alone. Decide for yourself.

…另一方面,其实它根本非常容易。你自己看着办把。

Basically, the file looks like this:

基本上,文件看上去是这样的:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:statsCollectionXML xmlns:ns2="src.SkyReXML">
... 好多好多字 ...
</ns2:statsCollectionXML>

别把这个头和尾巴给弄乱了,只在“好多号多字”里面折腾!同样,不要拼错语法。

主要设置

相当短的第一部分。它看起来像这样

	<general_settings>
		<logLevel>WARNING</logLevel>
	</general_settings>

The “logLevel” tells my included logger which messages to print. In this case, only warnings and stuff that is more severe. If you want the log to not print warnings, replace WARNING with SEVERE. If you hate logging, use OFF. If you want full information over what happens to items, use FINEST. If I tell you to send a log, use INFO.

“LOGLEVEL”包含了一个会记录信息的日志。在这种情况下,只有警告和比更警告更严重的东西会显示。如果你想日志不记录警告,把WARNING改为SEVERE。如果你讨厌记录,这里输入OFF。如果你对你的物品都做了什么改变很好奇,想知道全部的信息,使用FINEST。如果我让你发送一个日志,就使用INFO。

搞定,更有趣的东西来了。

武器基础属性

下面这些并不是我默认设置里的(译注:举个例子而已):

<base_stats_weapon>
	<fSpeedBonusArbalestCrossbow>-0.2</fSpeedBonusArbalestCrossbow>
	<fSpeedBonusLightweightCrossbow>0.25</fSpeedBonusLightweightCrossbow>
	<fWeightFactorArbalestCrossbow>1.25</fWeightFactorArbalestCrossbow>
	<fWeightFactorLighweightCrossbow>0.75</fWeightFactorLighweightCrossbow>
	<iDamageBaseBow>15</iDamageBaseBow>
	<iDamageBaseCrossbow>20</iDamageBaseCrossbow>
	<iDamageBaseOneHanded>5</iDamageBaseOneHanded>
	<iDamageBaseTwoHanded>10</iDamageBaseTwoHanded>
	<iDamageBonusRecurveCrossbow>8</iDamageBonusRecurveCrossbow>
</base_stats_weapon>

这些就是十字弓的扩展以及所有武器的基础数值。

fSpeedBonusArbalest: Arbalest劲弩(一种弩变种)通常射速比较慢;这里定义的值将决定他们的速度。
fSpeedBonusLightweightCrossbow: 轻型十字弓射速更快;这里定义的值将决定它的速度。
fWeightFactorArbalestCrossbow: Arbalest比其他十字弓重,其重量乘以这个值。
fWeightFactorLighweightCrossbow: 轻型十字弓比其他十字弓轻,其重量乘以这个值。
iDamageBonusRecurveCrossbow:这里决定了反曲弩得到一个较平的伤害加成。
iDamageBaseBow: 弓的基础伤害
iDamageBaseCrossbow: 十字弓的基础伤害
iDamageBaseOneHanded>: 单手武器基础伤害
iDamageBaseTwoHanded: 双手武器基础伤害

By editing the values in here. you have a fast and easy way to globally manipulate weapon damage and influence of crossbow modifiers on crossbows.

通过修改这些数值。你可以找到一个快速和简单的方法来全局性的设置武器伤害和对十字弓修改出来的十字弓。

天际重制的所有武器伤害公式如下:Damage(w) = DamageBase(w) + MaterialModifier(w) + TypeModifier(w)
即:伤害(W)=伤害基础(W)+材料修改(W)+类型修改(W)

伤害基础是由XML提供的。类型修改请看weapon_types。材料修改的请看weapon_materials

武器类型定义

这部分内容在下面这个标签内:

<weapon_type_definitions>
...
</weapon_type_definitions>

“weapon_type_definitions”包含许多”weapon_type_definition”条目。举两个例子:

	<weapon_type_definition>
		<sSkyReWeaponTypeBinding>BATTLESTAFF</sSkyReWeaponTypeBinding>
		<sWeaponSubstring>Battlestaff</sWeaponSubstring>
	</weapon_type_definition>
	<weapon_type_definition>
		<sSkyReWeaponTypeBinding>BATTLESTAFF</sSkyReWeaponTypeBinding>
		<sWeaponSubstring>Battle Staff</sWeaponSubstring>
	</weapon_type_definition>

这些条目根据武器的名字将它们映射成天际重置的各个子类型。sWeaponSubstring 说明ReProccer在搜索一个Mod中的武器时要找的武器的名字(注意大小写要正确!),同时 sSkyReWeaponTypeBinding当中的是天际重置中这个武器所归属的BATTLESTAFF(战斗法杖)类。这里两个例子的设定会使所有包含”Battle Staff”或”Battlestaff”文字的武器被认作战斗法杖,有对应技能点和状态。

使用这些条目可以把武器批量分类

对sSkyReWeaponTypeBinding有效的赋值为:

KATANA(武士刀) NODACHI(野太刀) TANTO(日式短刀) WAKIZASHI(也是个武士刀,我不知道汉化是啥) SHORTSWORD SCIMITAR(弯刀) SABRE(马刀) BATTLESTAFF(战斗法杖) SHORTSPEAR(短矛) LONGBOW(长弓) SHORTBOW(短弓) CROSSBOW(十字弓)
YARI(三刃叉)BASTARDSWORD(重剑把?我也不知道汉化的名字) CLUB(棍子) LONGMACE (钉头锤)LONGSWORD(长剑) HALBERD(戟)GLAIVE UNARMED(空手) BROADSWORD(腰刀) HATCHET (战斧)MAUL(木槌)

(上面全部是天际重制的武器类型)

其他的值只能导致出错。

对单一武器的改写,请看weapon_overrides.

武器材料

这部分内容在下面这段标签内:

<weapon_materials>
...
</weapon_materials>

武器材料都归属在”weapon_material”标签内。例如:

	<weapon_material>
		<iDamage>-1</iDamage>
		<sMaterialName>Wood</sMaterialName>
	</weapon_material>

“iDamage”是一个整数,它说明下面这个武器材料会做多少伤害修正。 “Wood(木)”是材料字符串。这段的意思表示任何其名称中包含“木”的武器,比如“Wooden Bow(木弓)”,会得到-1的伤害修正

注意这些”material strings(材料串),例如”Wood(木)”,会被ReProccer选为天际的材料关键字。所以一个名字里带有WeapMaterialDaedric关键字的”Wooden Longsword(木制长剑)”会被计算为木制武器。

如果一个武器不属于任何一个材料串,ReProccer会试图使用关键字替换。如果两个关键字和字符串都没有,这个武器会得到垃圾数值,同时错误会被记录。

如果一个武器有大量的符合的文字信息,最长的那个符合的文字会决义伤害。这种逻辑适用于所有基于字符串分类。

无论如何,请不要删除XML文件中已经存在的”weapon_materials”!你可以修改”iDamage”的数值,如果你想要处理其他MOD附件的武器包你可以添加新的”weapon_material”条目,不要移除已经有的部分!否则信息会被破坏!

武器类型

这段内容和上面的有一些类似的规则。武器类型都在下面的标签内:

<weapon_types>
...
<weapon_types>

对此举例如下:

	<weapon_type>
		<dReach>0.75</dReach>
		<dSpeed>1.4</dSpeed>
		<iDamage>0</iDamage>
		<sTypeName>Tanto</sTypeName>
	</weapon_type>

这些内容将决定某一类武器如何制造伤害,速度和距离。同样,sTypeName字符串会用来定义武器类型。这个例子说明所有的Tanto类武器的<dReach>(距离)是0.75(原版的剑:1.0),攻击速度<dSpeed>是1.4(原版的剑:1.0)最后的<iDamgae>伤害为0.

就像weapon_material一样,你可以自行添加和修改每行的条目。如果存在不符和的类型,ReProccer会试图使用关键字。所以不要移除行!虽然这不会对材料有影响,但移除”Tanto”这一行的话,就会把Tanto变为它基础的类型:匕首。如果你移除基础类型的行,比如”Dagger(匕首)”,你就完了。

(译注:总之请只改数字,把名字乱改的话天际重制是认不出来的。)

武器类型改写

包括:

<weapon_type_overrides>
...
</weapon_type_overrides>

条目举例:

	<weapon_type_override>
		<weaponName>Ebony Blade</weaponName>
		<weaponType>Nodachi</weaponType>
	</weapon_type_override>

这个区域是用来强制把那些并没有包涵任何武器类型字段的武器归类的。Ebony Blade(乌木刀)看上去像一个亚洲风的剑而且是双手的。通常,ReProccer在这个名字里找不到”Nodachi”这个字段,就无法明确双手剑的状态也无法解锁Nodachi的技能点。这个武器改写条目会把”[Nodachi]“附加到乌木刀的名字里,让它被认作一个nodachi,并且帮助使用者能把乌木刀辨识为nodachi。

不要试图在这个区域把天际重置的一种类型武器变成另外一种;这个只适用于把原版的武器类型变成天际重置的。所以可别把内容写成下面这种的:

	<weapon_type_override>
		<weaponName>Ebony Tanto</weaponName>
		<weaponType>Greatsword</weaponType>
	</weapon_type_override>

这只能导致混淆,奇怪的属性以及膝盖中箭。

这个部分的内容适合于单独类型的改写;通过使用weapon_type的定义取代质量(类比)分类。

武器材料修改

默认情况下这个区域是空的。看上去像这样:

<weapon_material_overrides>
... 没啥 ...
</weapon_material_overrides>

这个区域用来大量分配原版护甲的材料关键字,而基于名字定义的武器则不受此影响。

You can use this section to force requirements on weapons that don’t have them, and help the ReProccer create meltdown recipes. Note that this will also add requirements to crafting

and tempering recipes. An example entry that forces all “Uberdaedric” gear into the “Daedric” category looks like this:

你可以在这个区域强制本来没有锻造要求的武器必须有技能要求才能锻造,同时ReProccer会生成一个熔铸配方。注意这同时会增加它们的锻造和强化配方。下面是一个强制把所有”Uberdaedric(高级迪德拉)”装备加入到”Daedric(迪德拉)”分类中的例子。

<weaponSubstring>Uberdaedric</weaponSubsttring>
<materialOverride>Daedric</materialOverride>

“materialOverride”的有效数值如下:

IRON STEEL DWARVEN FALMER ORCISH WOODEN EBONY DRAGONPLATE DAEDRIC ELVEN ADVANCED GLASS SILVER DRAUGR

(译注:我不翻了,这里都是锻造列表里各种分类,喝杯茶休息一下吧)

武器排除字符串

同样的,一个容器

<exclusion_strings>
...
<exclusion_strings>

可以加入的内容如下

<exclusion_string>Dart Trap</exclusion_string>

武器排除字符串过滤器把不能被修改的武器彻底排除掉。所以,上面的这段内容将确保武器补丁不会接触任何名字里包括”Dart Trap”的武器。你猜的没错,那个武器不能试用,只是一个陷阱,所以把它patch了毫无意义。任何一个武器被加入到这里了就不能挥舞了。

目前护甲还不能被过滤

Crossbow Exclusion Strings

这段内容会将十字弓衍生阻止,基本上是空的,只有一个内容:

	<crossbow_exclusion_strings>
		<crossbow_exclusion_string>Enhanced</crossbow_exclusion_string>
	</crossbow_exclusion_strings>

通常来说,你当让想要ReProccer把你新添加的十字弓变成各种衍生版本的十字弓(反曲弓,复合弓…)。名字中包含了这里的内容的弓就无法受到这种待遇了。和武器排除字符串不同的地方是,它们的熔铸配方还是会被加进游戏里,强化配方会被修改,属性会被调整。

(译注:在上面的例子中Enhanced(强化)是说那些已经被强化过的十字弓不会有变化)

护甲基础属性

这个区域还是超级短,遵循的规则和上面3.8的内容一样

	<base_stats_armor>
		<fArmorFactorBoots>1.0</fArmorFactorBoots>
		<fArmorFactorCuirass>3.0</fArmorFactorCuirass>
		<fArmorFactorGauntlets>1.0</fArmorFactorGauntlets>
		<fArmorFactorHelmet>1.5</fArmorFactorHelmet>
		<fArmorFactorShield>1.5</fArmorFactorShield>
		<fProtectionPerArmor>0.1</fProtectionPerArmor>
		<fMaxProtection>90.0</fMaxProtection>
	</base_stats_armor>

fArmorFactorBoots: 任何靴子的护甲值乘以这个系数
fArmorFactorCuirass: 任何胸甲的护甲值乘以这个系数
fArmorFactorGauntlets: 任何护手的护甲值乘以这个系数
fArmorFactorHelmet: 任何头盔的护甲值乘以这个系数
fArmorFactorShield: 任何盾牌的护甲值乘以这个系数
fProtectionPerArmor: 每一点护甲值所抵消的物理伤害的百分比。0.1的赋值意味着你需要10点护甲值减少1%的物理伤害。
fMaxProtection: 身上每一件护甲可以从护甲获得的物理伤害减免上限。这里写90,就是说最高能达到90%的物理免伤。

这里就是快速调整整体盔甲属性的地方。

单个部位的护甲值的计算公式是:Armor(a) = ArmorFactorSlot(a) * ArmorMaterial(a)
即:护甲(A)=护甲派系插槽(a)X护甲材料(a)

例如:一个毛皮胸甲,ReProccer计算的公式是 3.0X15=45

护甲材料

这段包括的内容是这样的“

<armor_materials>
...
<armor_material>

例如:

	<armor_material>
		<iArmor>15</iArmor>
		<sMaterialName>Hide</sMaterialName>
	</armor_material>

这个规则和武器材料几乎相同。iArmor将基础护甲值和护甲材料挂钩。

护甲材料修改

默认情况下这个区域几乎是空的,看上去像这样:

	<armor_material_overrides>
		<armor_material_override>
			<armorSubstring>Guard</armorSubstring>
			<materialOverride>IRON</materialOverride>
		</armor_material_override>
	</armor_material_overrides>

这个区域用来根据护甲的名字把原版护甲的材料关键字批量分配给没有材料关键字的护甲。上面这个唯一的Guard条目会使所有Guard护甲拥有iron(铁)材料关键字

为什么要设置这个区域的内容呢?因为从黎明守卫以后,许多的护甲mod作者认为不适用原版的护甲材料是一件很”cool”的事情,这样可以把他们自己的护甲都归类到它们自己的分类里去。但是另一个不好的方面是,因为它们缺少原版关键字,我的ReProccer补丁就不能建立熔铸配方,同时不能调整强化培华,因为护甲材料被混淆了。

注意,如果在前面”armor_material”区没有被明确定义的话,那么这些关键字会帮助计算护甲值。如果有一个明确的定义,那么这里的内容会被已定义确认的护甲值取代(始终)。

“materialOverride”有效值为“materialOverride”:

IRON STEEL DWARVEN FALMER ORCISH STEELPLATE EBONY DRAGONPLATE DAEDRIC FUR HIDE LEATHER ELVEN SCALED GLASS DRAGONSCALE

(译注:还是锻造分类,你前面泡的茶凉了没?)

梦幻布衣排除字符串

通常情况下,ReProccer会为所有导入的布甲建立一个梦幻布衣的克隆版本。

	<dreamcloth_exclusion_strings>
		<dreamcloth_exclusion_string>Hooded</dreamcloth_exclusion_string>
	</dreamcloth_exclusion_strings>

梦幻布衣排除字符串会做一些排除工作。上面的条目会阻止”Hooded Robes(带头罩的长袍)”的自动加入,因为这些衣服会占两个格子其实在原版中是被标记为普通的上衣的。因此,使用它们是没意义的——长袍+兜帽或者长袍+头盔总是更好的。

意思是说有些罩袍自己带个头罩,不能带帽子丢掉一个部位的属性,这里就阻止这些类型的袍子。

炼金基础属性

和其他的”base_stats”规则基本相同,不过这个稍微长一点。

	<base_stats_alchemy>
		<fMagnitudeFactorDamage>0.25</fMagnitudeFactorDamage>
		<fMagnitudeFactorFortify>1.0</fMagnitudeFactorFortify>
		<fMagnitudeFactorResist>1.0</fMagnitudeFactorResist>
		<fMagnitudeFactorRestore>0.25</fMagnitudeFactorRestore>
		<fMagnitudeFactorRegen>0.25</fMagnitudeFactorRegen>
		<fMagnitudeFactorLingering>0.2</fMagnitudeFactorLingering>
		<fMagnitudeFactorRavage>0.5</fMagnitudeFactorRavage>
		<iDurationBase>2</iDurationBase>
		<iDurationBonusDamage>-1</iDurationBonusDamage>
		<iDurationBonusFortify>23</iDurationBonusFortify>
		<iDurationBonusLingering>8</iDurationBonusLingering>
		<iDurationBonusResist>23</iDurationBonusResist>
		<iDurationBonusRestore>4</iDurationBonusRestore>
		<iDurationBonusRegen>8</iDurationBonusRegen>
		<iDurationBonusRavage>8</iDurationBonusRavage>
		<sDamage>Damage</sDamage>
		<sRestore>Restore</sRestore>
		<sRegen>Regen</sRegen>
		<sResist>Resist</sResist>
		<sFortify>Fortify</sFortify>
		<sLingering>Lingering</sLingering>
		<sRavage>Ravage</sLingering>
		<bUsePriceLimits>true</bUsePriceLimits>
		<priceLimitLower>5</priceLimitLower>
		<priceLimitUpper>150</priceLimitUpper>
	</base_stats_alchemy>

嗝……上面写了好多。

fMagnitudeFactorDamage: 所有带”damage(伤害)”字段的炼金材料会造成的影响都会乘以这个数字。
fMagnitudeFactorFortify: 所有带”fortify(强化)”字段的炼金材料会造成的影响都会乘以这个数字。
fMagnitudeFactorResist: 所有带 “resist(抵抗)” 字段的炼金材料会造成的影响都会乘以这个数字。
fMagnitudeFactorRestore: 所有带 “restore(恢复)”字段的炼金材料会造成的影响都会乘以这个数字。
fMagnitudeFactorRegen: 所有带”regen(再生)”字段的炼金材料会造成的影响都会乘以这个数字。
fMagnitudeFactorLingering: 所有带 “lingering(持续)”字段的炼金材料会造成的影响都会乘以这个数字。
fMagnitudeFactorRavage: 所有带 “ravage(摧残)”字段的炼金材料会造成的影响都会乘以这个数字。
iDurationBase: 所有炼金材料造成的效果的基础持续时间。
iDurationBonusDamage: “damage(伤害)”类的炼金材料造成的效果的持续时间。
iDurationBonusFortify: “fortify(强化)”类的炼金材料造成的效果的持续时间。
iDurationBonusLingering: “lingering(持续)”类的炼金材料造成的效果的持续时间。
iDurationBonusResist: “resist(抵抗)”类的炼金材料造成的效果的持续时间。
iDurationBonusRestore: “restore(恢复)”类的炼金材料造成的效果的持续时间。
iDurationBonusRegen: “regen(再生)”类的炼金材料造成的效果的持续时间。.
iDurationBonusRavage: “ravage(摧残)”类的炼金材料造成的效果的持续时间。
sDamage: 带有这个字段里的关键字的炼金材料有”Damage”的效果
sRestore: 带有这个字段里的关键字的炼金材料有 “Restore(恢复)” 的效果
sRegen: 带有这个字段里的关键字的炼金材料有 “Regen(再生)” 的效果
sResist: 带有这个字段里的关键字的炼金材料有 “Resist(抵抗)”的效果
sFortify: 带有这个字段里的关键字的炼金材料有 “Fortify(强化)”的效果
sLingering>: 带有这个字段里的关键字的炼金材料有 “Lingering(持续)”的效果
sRavage: 带有这个字段里的关键字的炼金材料有 “Ravage(摧残)”的效果.
bUsePriceLimits: 是否会使用下面的价格规则(true/false)
priceLimitLower: 价格下限是多少
priceLimitUpper: 价格上限是多少

ReProccer是根据物品的名字中带的关键字来确认它们的效果,并由此设定它们的持续时间和幅度。当一个名字里包含了多个关键字的话,比如”Damage Magicka Regen(伤害法力回复)”,会遵循最高的那个关键字的持续时间和幅度的变化。注意有些东西的因素会大幅减少幅度;如果设置太高比如会把效果的使用性翻倍。ReProccer会确保最小的幅度是10。

最后三个字段会处理价格。有一些效果几乎接近不值钱,而且当减少幅度以后可能变得更加不值钱。如果bUsePriceLimit被设置为”true”,它就会避免某些分配了最大最小值的炼金材料被自动变得不值钱。

弹药基础统计

这里就是设定箭矢和弩矢的基础属性的地方。被分成arrow和bolt结尾的两个部分:

	<base_stats_projectile_arrow>
		<fRangeBase>120000.0</fRangeBase>
		<fSpeedBase>5200.0</fSpeedBase>
		<fGravityBase>0.25</fGravityBase>
		<iDamageBase>5</iDamageBase>
		<sIdentifier>Arrow</sIdentifier>
	</base_stats_projectile_arrow>
	<base_stats_projectile_bolt>
		...(这里省略的和上面的箭矢的一样)
	</base_stats_projectile_bolt>

除了范围,速度,重力的影响力和基础伤害这部分还包括箭矢和弩矢在游戏中的字符串识别。所以,当ReProccer计算属性时,所有包含了”Arrow(箭矢)”的东西都会被列为箭头。

“bolt(弩矢)”部分上面省略了,但是内容和”arrow(箭矢)”部分一样。请随自己高兴调整,但是不要移除任何一个字段(会把补丁搞坏),也不要增加新的字段(会导致XML杂乱,而且会被无视掉)

弹药属性修改

这个部分会设定如何修改箭矢/弩矢,例如”Exploding(爆炸)”, “Rope(绳子)” and “Barbed(穿刺)”,影响弹药的行为。如此这般:

	<modifier_stats_projectiles>
		<modifier_stats_projectile>
			<sModifierName>Explosive</sModifierName>
			<fGravityModifier>0.2</fGravityModifier>
			<fSpeedModifier>-100</fSpeedModifier>
			<iDamageModifier>0</iDamageModifier>
		</modifier_stats_projectile>
			...
		上面是一个<sModifierName> Explosive(爆炸)的效果,这里省略了其他的modifier_stats_projectile条目...
	</modifier_stats_projectiles>

老样子,可以调整<fGravityModifier>重力,<fSpeedModifier>速度和<iDamageModifier>伤害。这些值被添加到基础数值。

注意某些修改,例如”Fire(火)”(爆炸燃烧弩矢的效果),默认设置中是没有条目可设定的。但是,你可以自己把它们添加到这个区域。如果你移除条目,就是告诉ReProccer这条被删掉的修改不会对该属性造成影响。

对箭矢或弩矢来说本部分的设定都一样。

弹药材料属性

代码字段来了。

	<material_stats_projectiles>
		<material_stats_projectile>
			<sMaterialName>Ancient Nord</sMaterialName>
			<fGravityModifier>0.1</fGravityModifier>
			<fSpeedModifier>-100</fSpeedModifier>
			<iDamageModifier>2</iDamageModifier>
		</material_stats_projectile>
		... 后面还有许多条目 ..
	</material_stats_projectiles>

材料修改工作比较像……“修改器的修改器”。这里整理的数值会被调价到有这些设定的东西上去。不过和“修改器的修改器”不同的是,每种箭矢/弩矢都只能对应一种材料。

不要移除任何东西!只要修改你想改的就行,然后如果有个你用的mod添加了新的箭矢/弩矢材料你再添加进去。

Again,设定对箭矢和弩矢都有效。

弹药多样化排除字符

代码,现身!

	<ammunition_exclusion_strings>
		<ammunition_exclusion_string>Centurion</ammunition_exclusion_string>
		... 更多 ...
	</ammunition_exclusion_strings>

通常,箭矢/弩矢都会被ReProccer变成很多种。意味着一个简单的”Iron Bolt(铁弩矢)”会有爆炸,燃烧,冰冻,闪电,穿刺,定时爆炸,制造噪音,照明效果,强力,强力爆炸,……各种变化,并带有锻造配方。在这里添加内容你就可以确保这些变化不会发生。但伤害等属性还是会被调整。

以上项目的意思是指名称中带有“百夫长”的弩矢/箭矢不会被ReProccer做成带有附加效果的扩展。

弹药排除字符串

	<ammunition_exclusion_strings>
		<ammunition_exclusion_string>Practice</ammunition_exclusion_string>
	</ammunition_exclusion_strings>

这个区域的意思就是说某一个类型的弹药没有任何效果。没有变化,没有伤害,没有重力,啥都没有。(译注:上面的例子是一个Practice(训练)类弹药)

梦幻布衣排除字符串

我是猫。喵喵喵喵喵(译注:这家伙是写的不清醒了吗):

	<dreamcloth_exclusion_strings>
		<dreamcloth_exclusion_string>wound test</dreamcloth_exclusion_string>
	</dreamcloth_exclusion_strings>

喵喵喵这段内容里的布甲没有梦幻布衣喵喵喵

Mod 排除

这个部分允许你通过输入一个mod的名字彻底的把它排除到ReProccer的补丁范围外。以下是XML:

	<mod_exclusions>
		<mod_exclusion>brokenmod.esp</mod_exclusion>
	</mod_exclusions>

如果你觉得不去给一个mod加补丁是正确的,那么就把它们的名字加入到mod_exclusion中间去(或者提花已经有的。)注意这个区域不会产生字段,但会对该MOD有额外的匹配。

这里和Blocklist的效果稍微有所不同,但我觉得这部分对普通用户来说不是重点。

修改范例

问题1:“我讨厌你的高护甲值。我如何把它们减少一半?”
回答1:“在”base_stats_armor”区域,将所有的倍增减半。重新运行jar文件,强制生成一个新的补丁。”

问题2:“Mod XY加入了一个叫Uberhaxx的新的护甲材料。我要让Uberhaxx拥有略微超越”Daedric(迪德拉)”护甲的属性。我怎么做?”
回答2:“到”armor_materials”区域,搜索”Daedric”对应的armor_material。把下面的内容复制到那里,然后相应的修改。看上去像这样:

	<armor_material>
		<iArmor>52</iArmor>
		<sMaterialName>Uberhaxx</sMaterialName>
	</armor_material>

重新运行jar文件,强制生成一个新的补丁。”

问题3:“Mod XY添加了“反曲剑”这种类型的武器。我想要每一个反曲剑可以使用Scimitar(弯刀)的技能点和属性。我怎么搞?”
回答3: “到”weapon_type_definitions”区域添加下面的weapon_type_definition:

	<weapon_type_definition>
		<sSkyReWeaponTypeBinding>SCIMITAR</sSkyReWeaponTypeBinding>
		<sWeaponSubstring>Curved Sword</sWeaponSubstring>
	</weapon_type_definition>

重新运行jar文件,强制生成一个新的补丁。”

日志

ReProccer的日志可以在”SkyProc Debug”文件夹找到。如果你遇到了任何问题,使用里面的Debug-Starter.bat来运行ReProccer,然后把最后(~50)行日志发给我。虽然在某些情况下发送整个日志最好,但如果有这个必要的话,我会事先通知你的。

不过,发东西给我之前,先查看一下讨论区,特别是置顶的帖子。如果你不怕自己尝试解决你的问题,我也不会。

@ Mod制作者

@ 护甲Mod制作者

一旦你使用了原版的材料关键字,基本上没有东西会破坏ReProccer完成它的工作。不过数值可能会因为奇怪的组合而被搞乱,例如一个恶魔材质的护甲,需要恶魔甲锻造技能,但是名字居然带了一个Steel或者和Steel有关的关键字。

虽然通过添加armor_material的条目大部分可以补救。

如果你不想用原版的材料关键字,ReProccer的用户就需要添加armor_material_override条目。这也没有问题,如果你能清楚地说明你打算让每一件盔甲的属性有多强。

@武器Mod制作者

规则和上面相同,还有一些额外的东西。

如果你想要你的Katana被天际重制辨认为Katana,请确认它的名字包含”Katana”。如果出于艺术的原因这不可能,那还是没关系,因为通过修改来修正这个问题。唯一一个可能导致ReProccer出bug的地方是使用了原版武器的strings,例如把”Sword”用在一些实际上本该属于其他某种类型的东西上。

如果你制作的一个武器mod会包含一个值得单独设置对应属性和技能点的武器类型(比如连枷或晨星),和我联系一下我就可以把ReProccer设定成可以正确使用你的武器类型。我还可以在不包括你的mod的情况下特别为你的武器类型建立一个新的技能点。

还有,我强烈建议使用原版材料和武器类型关键字(除了某些你可能会使用的个别关键字)

@ 兼容补丁制作者

你的工作应该基本已经都被ReProccer做掉了,尽管对那些无视仍我对关键字的建议的mod来说,创建几行拷贝黏贴出来的XML还是必须的。或者,你可以使用ReProccer来为那些不想让它有效工作的mod制作补丁。

译注:为部分Mod制作SkyRe兼容补丁的一个补丁制作小组的页面,其中或许有你需要的:Balbor and Steelsouls SkyRe ReProccer Project

感谢和制作人员

感谢Leviathan创造了SkyProc以及没有忽视掉我那些没完没了的请求。 :p
感谢 Balbor 和Steelsouls坚持为高级兼容不断更新XML文件
感谢Java提供了比CK/Papyrus对我更少的脑部XX。制作这个补丁工具让我真的乐在其中,而且我彻底的感觉到我现在是在制作好多个SkyProc 的mod。:D
感谢我的beta测试者 }{ellknight, steamin661, timota21, Mytherial, alexsilvestre, matthias5770, 还有所有其他我前面忘记提到的人。
感谢微软Windows绘图程序的作者为我创造伟大的艺术提供了一个免费和简单的方法。

ldfxf

,

One Response to 自动天际重制补丁生成器

  1. icedream 2013 年 5 月 11 日 at 上午 12:35 #

    ldfxf,不介意我帮你调整一下排版吧? 😛