silasa 发表于 2010-12-28 00:27

【菜鸟分享】星际争霸2部分战役科技双向升级简单教程

本帖最后由 silasa 于 2010-12-28 00:30 编辑

星际争霸2部分战役科技双向升级简单教程

额,首先说这个并不是真正的双向升级,事实上,假如实验室科技升级选择是A和B,我只是把B的内容加到A里去了而已。并非所有的实验室科技都修改成双向了,我偷懒没继续研究,先玩去了……

我们先找到星际争霸2游戏目录里的Versions文件夹里的Base15405文件夹里的patch.SC2Archive文件。你需要一个MPQEDITOR来读取里面的文件,在置顶精华里的神族圣母舰MOD一帖里,作者有提供下载。第一次运行的时候,会弹出个框让你选择存放修改后文件的位置,随便指定一个地方即可。

用这个文件打开patch.SC2Archive,你可以看到里面有文件列表,其中在\Campaigns\Liberty.SC2Campaign\Base.SC2Data\GameData\UpgradeData.xml文件里,便是所有的战役科技的内容,包括实验室和军工厂的升级。

现在在UpgradeData.xml点右键,选择extract,直接点OK即可。

接着,我们需要一个editplus,这个软件在百度上随便搜搜都有,下载下来默认安装好即可,然后在解压出来的UpgradeData.xml上点右键,选择editplus,这个文件就被打开了。

PS:其实用记事本也可以打开修改,貌似也没问题,不过我是用的editplus……另外,如果你玩的英文版,那么可以极大的方便你寻找需要修改的项目。

首先说一下,这个文档里的格式是下面这样的:
<CUpgrade id=科技的名称(有可能和游戏里显示的不一样)>
中间是具体的定义神马的
</CUpgrade>
定义结束,所以我们只需要关注中间那一段就可以了。

虫族研发科技里的细胞反应器(Cellular Reactors)和活性生化钢铁(Regenerative Bio Steel)在同一层里,但是两个都非常有用,那么怎么让这两种科技都生效呢?

按CTRL+F,弹出搜索框,输入<CUpgrade id="CellularReactors">,可以找到细胞反应器,下面这一段即是(本来是100,我改成200了的,嘿嘿):
      <EffectArray Reference="Unit,Raven,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,Ghost,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,Medic,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,Thor,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,Medivac,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,Wraith,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,Banshee,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,Battlecruiser,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,ScienceVessel,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,Spectre,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,DukesRevenge,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,DuskWing,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,Predator,EnergyStart" Value="200"/>
      <EffectArray Reference="Unit,Raven,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,Ghost,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,Medic,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,Thor,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,Medivac,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,Wraith,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,Banshee,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,Battlecruiser,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,ScienceVessel,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,Spectre,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,DukesRevenge,EnergyMax" Value="200"/>
      <EffectArray Reference="Unit,DuskWing,EnergyMax" Value="200"/>
      <AffectedUnitArray value="Raven"/>
      <AffectedUnitArray value="Ghost"/>
      <AffectedUnitArray value="Medic"/>
      <AffectedUnitArray value="Thor"/>
      <AffectedUnitArray value="Medivac"/>
      <AffectedUnitArray value="Wraith"/>
      <AffectedUnitArray value="Banshee"/>
      <AffectedUnitArray value="Battlecruiser"/>
      <AffectedUnitArray value="ScienceVessel"/>
      <AffectedUnitArray value="Spectre"/>
      <AffectedUnitArray value="DukesRevenge"/>
      <AffectedUnitArray value="DuskWing"/>
格式很简单,以第一个为例,UNIT是单位,RAVEN是渡鸦,EnergyStart是开始能量,EnergyMax是最大能量,好像这两都数据都一样,<AffectedUnitArray value="Raven"/>表示在该单位上生效。

关于<AffectedUnitArray value="Raven"/>,这里要说一下,貌似不少研究的定义,都要求有这个项,否则即使添加了数据,也仍然无效。比如我把这一段去掉,那么细胞反应器的升级便无法影响渡鸦这个单位了。反过来说如果你要添加受该科技影响的单位,也记得有模学样的添加就是了。

下面是活性生化钢铁,搜索RegenerativeBioSteel即可找到,其实就在上一条的上面……

里面也有很多定义,我的办法很简单,直接全部复制,然后粘贴到细胞反应器那里面去……但是很有效,嘿嘿。

神族研发科技的第一层里,有两个都很实用的科技。
高能电容器:攻击升级每级附带5%的攻击速度;
钒合金板:防御升级每级附带5%的生命值。

高能电容器就在文件的最开头,不过定义很多,分为TerranInfantryWeaponsUltraCapacitors(步兵)TerranVehicleWeaponsUltraCapacitors(车辆)TerranShipWeaponsUltraCapacitors(舰船),钒合金板也是一样,分上面三项具体列出。要想两种效果都有,那就把其中一个的内容复制粘贴到另一个里去就是了,然后升级的时候选择那个修改过的选项。

简单的全部复制我不知道会不会出错,没试过,我是把钒合金板(VanadiumPlating)里的内容根据不同的单位分别提取粘贴的。比如人族机枪兵:
      <!--Marine -->
      <EffectArray Reference="Weapon,GuassRifle,Level" Value="1"/>
      <EffectArray Reference="Effect,GuassRifle,Amount" Value="1"/>
这个是原本高能电容器里的定义,我把钒合金板里机枪兵的内容提取出来,粘贴上去,就成了
      <!--Marine -->
      <EffectArray Reference="Weapon,GuassRifle,Level" Value="1"/>
      <EffectArray Reference="Effect,GuassRifle,Amount" Value="1"/>
      <EffectArray Reference="Unit,Marine,LifeArmor" Value="1"/>
      <EffectArray Operation="Multiply" Reference="Unit,Marine,LifeMax" Value="1.05"/>
      <EffectArray Operation="Multiply" Reference="Unit,Marine,LifeStart" Value="1.05"/>

Weapon,GuassRifle,Level是指高斯来复枪(机枪兵和部分英雄使用的武器)武器升级级别
Effect,GuassRifle,Amount是指当前武器升级给使用高斯来复枪的单位加了多少攻击力,你可以改成更高
Unit,Marine,LifeArmor是指机枪兵装甲
Unit,Marine,LifeMax和Unit,Marine,LifeStart就是钒合金板的效果,5%的额外生命值。
整个上面一段的意思就是,武器每升级一次,攻击+1,装甲+1(这个有点点无耻,你可以去掉,嘿嘿),生命值+5%

然后请依此类推吧,如果攻击升级里没有的单位,就把防御升级里的单位数据和名称一起复制过去,然后在最后的<AffectedUnitArray value=把单位名称加上。

基本上,DIY的东西,原理比较简单,主要是找数据比较麻烦,对我这样没学过理科的家伙更是麻烦,不过在度娘和一些乐于分享的大大们的帮助下,我还是修改成功了,分享给象我一样的菜鸟们。


另外求助一下,怎么把诸如伯劳炮台,行星要塞,空投补给站之类增加的东西修改出来?这些科技描述里没有任何数据,就一个名称。
比如空投补给站:
    <CUpgrade id="SupplyDepotDrop">
      <EditorCategories value="Race:Terran,UpgradeType:Talents"/>
      <Flags index="UpgradeCheat" value="0"/>
什么都没了,难道把整个字段都丢到另一个科技名下吗?

shavy 发表于 2010-12-29 14:14

楼主头像。。。。相当给力啊。。
页: [1]
查看完整版本: 【菜鸟分享】星际争霸2部分战役科技双向升级简单教程