红警2rules文件

红警2rules文件,第1张

下载“XCCMIXER”这款软件悄基中,它可以提取rules.ini。使用说明:1.打开XCCMIXER,点左上角的【文件】,再点【打开】,进到红警目录,选择ra2.mix。2.双击local.mix进入这个子文件包。3.找到rules.ini,在它上面点右键,点释放文件”。4.选择保存位置,1般指定红警启山目录。5.点保存完成文件锋仔提取。

udev的rules定制和调试

在定制项目中,对外设的热插拔的管理基本都在udev/systemd-udev来管理。这里没有对基本的udev使用/rules书写脊贺冲进行介绍。

1. udev的rules可能的位置

/lib/udev/rules.d -- udev默认/预置的rules

/etc/udev/rules.d/ -- 定制的rules, 优先级高于/lib/udev/rules.d,官方建议客户写的樱歼rules都放这里

至于放在哪个位置,自己决定就好,既然你在修改系统就应该知道你在做什么

2. 定制自己的rules

定制热插拔的事件,具体到rules就是:

  1)过滤到正确的udev事件。

  2)指定执行的动作,rules里的“RUN”,通常是脚本(毕竟要完成一个功能,绝大多数场景都不是一个命令能搞定的)

3.到这里就要设计到rules的调试了

  1)如何知道要过滤的是条件?

  2)如何将必要的参数传递给RUN执行的脚本?

方法1:

udevadm monitor -p

-- 监测所以的kernel/udevd的热插拔事件, -p选项很有必要,打印出本次热插拔事件的一些属性

这里就是比较设备插入和拔出时的事件属性的不同,可作为过滤的条件

比如:

rules文件对于规则:

到这里很多时候就能满足要求了,如果还有解决不里的场景,就要进一步修改过滤条件。

man udev里会有绝大部分的关键字的信息(想全部的就只能去撸源码)。

方法2:

通过在RUN指定的脚本里传递参数,来找到设备存在和不存在的属性差异。

比如:

参考信息:

a)、udev 规则的匹配键

ACTION: 事件 (uevent) 的行为,例如:add( 添加设备 )、remove( 删除设备 )。

KERNEL: 内核设备名称,例如:sda, cdrom。

DEVPATH:   设备的 devpath 路径。

SUBSYSTEM: 设备的子系统名称,例如:sda 的子系统为 block。

BUS: 设备在 devpath 里的总线名称,例如:usb。

DRIVER: 设备在 devpath 里的设备驱动名称,例如:ide-cdrom。

ID:   设备在 devpath 里的识别号。

SYSFS{filename}: 设备的 devpath 路径下,设备的属性文件“filename”里的内容。

 例如:SYSFS{model}==“ST936701SS”表示:如果设备的型号为 ST936701SS,则该设备匹配该 匹配键。

 在一条规则中,可以设定最多五条 SYSFS 的 匹配键。

ENV{key}:   环境变量。在一条规则中,可以设定最多五条环境变量的 匹配键。

PROGRAM:调用外部命令。

RESULT:   外部命令 PROGRAM 的返回结果。

b)、udev 的重要赋值键

NAME: 在 /dev下产生的设备文件名。只有第一次对某个设备的 NAME 的赋值行为生效,之后匹配的规则再对该设备的 NAME 赋值行为将被忽略。如果没有任何规则对设备的 NAME 赋值,udev 将使用内核设备名称拍则来产生设备文件。

SYMLINK:  为 /dev/下的设备文件产生符号链接。由于 udev 只能为某个设备产生一个设备文件,所以为了不覆盖系统默认的 udev 规则所产生的文件,推荐使用符号链接。

OWNER, GROUP, MODE:为设备设定权限。

ENV{key}: 导入一个环境变量。

c)、udev 的值和可调用的替换 *** 作符

Linux 用户可以随意地定制 udev 规则文件的值。例如:my_root_disk, my_printer。同时也可以引用下面的替换 *** 作符:

$kernel, %k:设备的内核设备名称,例如:sda、cdrom。

$number, %n:  设备的内核号码,例如:sda3 的内核号码是 3。

$devpath, %p: 设备的 devpath路径。

$id, %b:设备在 devpath里的 ID 号。

$sysfs{file}, %s{file}:  设备的 sysfs里 file 的内容。其实就是设备的属性值。

$env{key}, %E{key}: 一个环境变量的值。

$major, %M:设备的 major 号。

$minor %m:设备的 minor 号。

$result, %c:PROGRAM 返回的结果。

$parent, %P:    父设备的设备文件名。

$root, %r:  udev_root的值,默认是 /dev/。

$tempnode, %N:临时设备名。

%%:符号 % 本身。

$$: 符号 $ 本身。

对比一下和man里的差别,$sysfs{file},这个在实际解决问题的时候是很有用的。

这种方法适合调试系统启动的时候对rules的调试,这个过程中是没得udevadmin monitor使用的。(当然,可以尝试自己写一个systemd启动服务,这就涉及到启动的时机、关联、影响,实际 *** 作会比预想的复杂)

这里提两个点:

1. env - 可以是udev事件里的属性(-p打印的)

2. $sysfs{file}, 这里的file就是在系统/sys目录下对应的节点下的文件,有些情况下只能在sysfs的file的内存才能准确区分事件。

时隔很久才看到这条。。。

当年研究红警也是得到了不少业内人士的帮助 今次既然看到了就回馈一波社会吧,不知道能不能看到了,帮助到谁了给我留言吧,纯原创。

为了保证谁都能玩得了 使用直接使用原版平台 也无需任何其他工具 一个笔记本就够了

本文使用的规则即RULE文件是尤里的复仇的RuleMD文件。

下面开始全文

小白也能看懂的,汉斯上校手把手教你亲手做个多管火箭炮

要先修改rule.ini和art.ini

定义新【武器】火箭发射器:

武器是要装给单位上 装车上或者小兵身上才行 这就不用我说了吧

[RocketLauncher]                 ;武器名称没什么好说的,检查一下别和已有的武器重复就行

Damage=130                        ;单发伤害 没必要太高 能炸死小兵就行 毕竟那么多发

ROF=180                              ;射速(装填速度) 数字越大越慢 射速太快就没意思了。

Range=20                           ;射程 越大越远没什么好说的

Projectile=Cannon3            ;抛物体类型 一会我们直接创建一个专属的

Speed=2                             ;火箭飞行速度飞太快不好看 我尝试了很多觉得2最好

Warhead=HowitzerWH     ;战斗部类型 或者说所谓的d头 这个我填的原版的榴d炮战斗部

Report=MigAttack            ;开炮的炮声 这里用的米格导d发射的声音 咻咻的有点像火箭炮

Anim=GUNFIRE                  ;炮口火焰特效

Burst=14                             ;一次齐射的射d数量 其实不用太多

下面我们定义一个专属抛物体:

[Cannon3]                      ;上文提到的抛物体名称 和上面要对应 不重复就行

Image=DRAGON          ;火箭d的外观

Arcing=true                    ;d道类型 当然是抛物线

SubjectToCliffs=yes          ;以下三条为能否飞越墙壁悬崖啥的 废链缓话。飞不过墙要他何用

SubjectToElevation=yes

SubjectToWalls=yes

Inaccurate=yes ;即不精确,也就是火箭炮的面杀伤,不然打十多发只能炸死一个人有何用

结果如下

纯本人hanshiglas手打 盗劳资答案到别的地方贴的狗编辑司马

火箭d效果

然后找个车 把车的主武器改成上面的【武器】

即:

Primary=RocketLauncher

其实到这里就基本完事了 效果世裤如图

如果想完美一点就修改一下发射火焰 需要修改artmd.ini

在你要改的火箭炮车的Artmd.ini中设置

开火动画 如:PrimaryFireFLH=150,50,200

第二个数字是开火时火焰效果的位置,设置为50就是火箭d会以50像素的间隔依次从火箭炮箱的两侧交替发射。

当然这个F、L、H是相对于我图上的火箭炮所说的,需要针对不同的模型进行调试 这个火箭炮的模型是我随便找的游戏自带的隐藏单位,代号MLRS,也就是现实中美军的M270自行火箭炮,最终的游戏版本弃用了,被我解包出来的,不可直接调用,需要自己解出来套Hva。当然还有其他的隐藏未使用单位,不过这是另一个话题了。

这是我略微修改颜色的该火箭炮。模型虽然不惊喜 但毕竟是官方的彩蛋,拿来直接用吧。

交替发射火焰我实在是截不到图因为射的太快了。。。

大功告成。

另外 如果想制作反坦克火箭筒的话 直接新建个武器 直接使用这个抛物体的代码 齐射数量改为1,战斗部设置为 AP 即穿甲d即可,棚返模比如直接交给防空步兵 就变成反坦克步兵了,d道也更接近现实中的苏制RPG2反坦克火箭筒,即我军第一代反坦克40火,不过更接近设定的历史时期,如果想做攻顶反坦克导d就改成Bikemissile,然后搜索这个武器 将威力调大即可,这也是原版未使用的隐藏单位导d摩托的武器,解包文件可以找到这个摩托,导d摩托后来出现在西木续作命令与征服:将军里,但变成了多功能步兵车一样的武器。

有军事或者红警2方面的问题也可以继续问我

有问题追问吧。

--汉斯海格拉斯


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12167813.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存