08. 换皮注册和从战役挑战地图提取文件

首先提一个拆分ini,当MO出新版的时候常常面临全部重改的问题,用拆分ini就可以解决,方法是在文件尾加入

[#include]
0=newrules1.ini
1=newrules2.ini

其中newrules1.ini是你自建的新ini文件的文件名,覆盖顺序为下面的覆盖上面的,前面的数字随便编,甚至可以用字母,用+=也可以,如下面这样也是可以的

[#include]
23333=rulesmo-ststl.ini
+=SP_LIBRA.ini

不过地图编辑器通常不读取拆分的ini,也不读取+=注册的东西

rules、art、ai都支持这样的拆分

战役经常会对某些单位的属性进行修改,比如所有战役基本都不允许建造英雄单位,这时候就需要换皮注册了

首先我们需要对某个项进行复制,比如我现在需要一个完全不受战役内置ini修改影响的圣骑士坦克

  1. 先在代码中找到圣骑士坦克[PANTHER]

  2. 复制粘贴所有圣骑士坦克的代码,粘贴到你自己的ini文件中,然后改一下项名称如[PANTHER_P]

    这里提到一个新概念,注册名,项名称PANTHER_P即为这个新的圣骑士坦克的注册名

    武器、弹头、抛射体、单位、超级武器、动画、粒子等都是有注册表的,但注意任何注册名都不要超过24个字符,否则会报错

  3. 然后修改好需要的比如建造前提等

  4. 加上模型语句,PANTHER默认用的是artmo.ini中同名的模型,

    新加的这个必须指定好模型,Image=PANTHER,

    注意有的单位不是默认,如灾厄坦克[APOC]中Image=CATA

    完成后如下

    [PANTHER_P]
    Image=PANTHER
    .....(其它代码)
    
  5. 对新加的单位进行注册,圣骑士坦克属于载具,注册在[VehicleTypes]

    注册方式和拆分ini那里是相同的,使用一个随便编的东西=PANTHER_P或+=PANTHER,由于mo的ini中注册都是使用数字,所以不建议注册的时候使用类似0=PANTHER_P这样的方法

    首先你可能跟已有的注册项冲突(如0=PANTHER_P和0=AMCV冲突了),其次未来更新的单位也可能与你这个项冲突,所以可以使用a001=PANTHER_P这样的方式,当然不在意地编的问题也可以直接用+=PANTHER_P

    步兵单位注册在[InfantryTypes]中;载具、飞行载具、船只都属于载具,注册在[VehicleTypes]中;机场战机注册在[AircraftTypes]中。

  6. 换新武器,圣骑士坦克使用盖特逻辑的同时也保留了主副武器的代码,我们可以在代码中将所有武器名后面加上_P,然后找到所有圣骑士坦克原本的武器,同样复制粘贴,并在项名称(注册名)最后加上_P

  7. 对新加的武器进行注册,武器注册在[WeaponTypes]中,注册方法同上

  8. 同理对抛射体和弹头进行同样的复制粘贴改项名称(注册名),并进行注册,抛射体注册在[Projectiles]中,弹头注册在[Warheads]

    至此一个完全不会受战役地图内置ini影响的圣骑士坦克的换皮注册完成了,当然换皮注册没必要对每个要素都换,也可以只换皮注册单位、只换皮注册武器之类的

    超武的换皮注册基本步骤相同,超武注册在[SuperWeaponTypes]

    动画和粒子一般无需换皮注册,不过这里也将注册位置说明。动画注册在[Animations]中,粒子注册在[Particles]中,粒子系统注册在[ParticleSystems]

    接下来是战役地图代码提取,战役地图可以从指定资源贴中下载到(3.3.6战役地图),对应关系可以看吧里寻惘的贴子:

    {坟贴警告}心灵终结3ini吧>寻惘>336战役所对应的地图文件,整合完成

    然后在相应的地图文件里找相应单位就可以了,找的方法可以用4L中的办法,不过像某些涉及到触发的支援技能(如天秤的技能)就需要用地图编辑器翻触发才行了

    这里为想搞完全体天秤的提供一个提示:

    {坟贴警告}心灵终结3ini吧>ststl->简单描述一下天秤技能在结局关的实现