红警2魔改小教程(3)

您所在的位置:网站首页 大葱喜欢大水吗 红警2魔改小教程(3)

红警2魔改小教程(3)

2023-07-27 11:46| 来源: 网络整理| 查看: 265

hi,大家好,开场白被我用激光煮熟了。这里是烈葱,今天将要带来的是一篇魔改小教程,可能会略有难度,不懂的话可以来问我哦,主题是移动激光墙的效果实现(实际效果参考BV1LA411h7ru)。话不多说,我们开始吧!

所需软件:XCC Mixer1.47(或1.48,比较推荐这两个版本),NotePad++(用于编写规则文件,没有的话记事本也可以)。 

所需文件:规则文件,原版是rules.ini,尤里的复仇是rulesmd.ini,游戏完整文件一套。

实现此功能需要使用Ares拓展平台(下载到的Ares压缩包解压到游戏文件夹内即可)。

首先,大致讲解一下实现原理:

实战效果

激光墙只不过是一种视觉效果,也就是所谓的障眼法,背后实际用的逻辑其实是轨道炮粒子系统。

给武器写上轨道炮粒子系统,就可以设定穿透伤害(就是对发射轨迹上的目标造成的伤害),再结合激光武器逻辑,就可以实现类似激光墙的杀伤效果。

为了防止AI也使用这样的单位,我们最好新增的单位来实现效果。由于两个单位之间形成的激光墙效果比较容易理解,所以本文以两辆车形成一道激光墙为例讲解。

搜索载具注册表注册一个新单位,名字随意,不与现有的重复且自己能记住就行。

载具注册表

此外还需要在步兵注册表[InfantryTypes]下注册一个新的步兵

然后找一辆能建造的载具,复制它的代码并修改复制后的片段头注册名

比如我复制了光棱坦克的代码,原注册名是[SREF],我将其修改成了我在载具注册表内新增的[LAWL01],为了不影响单位本身的攻击,我这里使用载具内部的乘客来产生轨道炮粒子和激光效果。代码示例:(需要Ares才能实现)

Promote.IncludePassengers=yes让载具内的乘客始终保持与载具自身相同的等级

Survivor.RookiePassengerChance=0%新兵载具被摧毁乘客存活概率0%

Survivor.VeteranPassengerChance=0%老兵载具被摧毁乘客存活概率0%

Survivor.ElitePassengerChance=0%精英载具被摧毁乘客存活概率0%

NoManualUnload=yes禁止手动放出乘客

NoManualEnter=yes禁止手动载入乘客

Passengers=1可装载一名乘客

InitialPayload.Types=LaSh01初始装载车乘客的注册名

InitialPayload.Nums=1初始装载乘客的数量

OpenTopped=yes载具内的乘客可以直接向外开火攻击

为了防止新载具跟其它单位之间形成激光墙效果,我们需要让乘客只能攻击母载具,这时候就需要要用到自定义护甲。我们任意搜索全局代码中的一处空位,比如[Warheads]弹头注册表上面,直接写上[ArmorTypes](同样需要Ares)

然后依照“新护甲=默认等同的已存在护甲”这样的格式来写,当然右侧也可以直接写弹头比例,0%的话可以做出无敌的效果,默认没有任何弹头能对它造成伤害,且无法瞄准它,包括AI的单位!(请注意护甲名字要对上,如果对不上的话游戏就会当做无甲none处理)。最后不要忘了给你的新单位也装备上这种新的护甲!

那么现在母载具的部分就已经完成,现在则是重头戏,乘客:

为了让乘客会主动攻击母载具(我方的),就需要添加一句AttackFriendlies=yes,让它会主动攻击自己的单位,再添加一句StupidHunt=yes(受到命令攻击不能直接攻击的目标时不会做出任何响应)。

由于乘客会始终待在载具内,所以血量和模型完全无所谓了,重点则需要关注武器部分:

武器名字与现有的不重复且自己能记住就行,我们搜索光棱坦克的激光武器[Comet]并将其稍作修改:(名字不一定要和我的一样)

AmbientDamage就是所谓的穿透伤害,它决定了对路径上的敌人造成的伤害。

Projectile是抛射体,这里可以直接写InvisibleHigh,那么Damage就可以写大一些。

AttachedParticleSystem就是要使用的粒子系统,IsDetachedRailgun是Ares3.0版本(暂时还没有正式版,只有测试版)新增的功能,可以无视上一次攻击产生的粒子造成的无法发射的 影响。

OmniFire即为垂直发射,或全向开火,不用转身就能向任意方向攻击。

Range是乘客的武器攻击射程,也决定了激光墙最多可以连接多远

我们需要让乘客只能攻击母载具,所以需要使用新的弹头,弹头在[Warheads]注册表下面注册。

新弹头示例

如上,不可以直接简单的把其他护甲的比例全部写成0%,如果那样的话就会导致这个激光墙无法对其他任何目标造成伤害,也就失去了意义,所以再次引用Ares的语句:

相关代码截图,具体请查看Ares说明书

Versus.none.ForceFire=no

Versus.none.Retaliate=no

Versus.none.PassiveAcquire=no

上面三句就可以让使用这个弹头的单位既不能主动攻击none护甲的单位,被none护甲的单位攻击也不能反击,甚至强制命令其攻击none护甲的单位也不能攻击,但是none护甲的单位可以被其范围攻击伤害到。

我们还需要让这个乘客能主动攻击母载具,“Versus.新护甲=3%”可以让这个乘客能直接攻击新护甲的单位(护甲名字一定要写英文和数字!!!!!千万不要写中文!!!)。

上述工作完成后,我们需要给这个弹头设定一个不太小的杀伤半径CellSpread,以确保能杀伤到经过的单位。此外,我们还需要防止友军(或己方)单位被击杀,具体代码详见下图:

AffectsEnemies=

AffectsOwner=

然后就是比较难的轨道炮粒子系统部分:

这个也是需要注册的!粒子系统的注册表是[ParticleSystems],产生的粒子的注册表是[Particles]。

简单粒子系统示例简单粒子示例

这些参数具体可以参考2019版教程包中的粒子系统教程,这里作用不是太大,只是为了让穿透伤害能够正常生效,不想多做了解的可以直接照抄。

那么,如果上述工作都已经完成了,你就可以保存ini文件,打开游戏体验一番啦~

很多参数都是可以改的哦,但是如果车辆较多就可能出现连接混乱的效果了,这也算是一个瑕疵吧。

还有什么别的想看的也可以直接在评论区提出来哦

这里是烈葱,喜欢的话就支持一下我吧~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3