找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3373|回复: 6

解决单位因使用了主武器导致部署时没能释放出副武器

[复制链接]
发表于 2023-4-23 12:28:34 | 显示全部楼层 |阅读模式
本帖最后由 jgaxmey 于 2023-4-23 12:34 编辑

像尤里x和百合子这样的单位,部署效果是摆出一个动作同时释放一个武器。但这有个bug,如果刚使用主武器攻击了,会导致副武器也进入cd,从而只做出了部署动作,没有释放武器。当然原版不明显,因为尤里x的主武器是特殊的心灵控制,部署时一般不会是刚刚使用了主武器。而百合子是红警3里面的,所以也没有这个问题……辐射工兵是部署后重复释放武器,所以也没事。最后,受影响的就只有mod里自己添加的这种单位了,比如仿做的百合子。
现在我想到了一个方法,效果还是不错的。方法利用了kraotos的部署变形功能,以百合子为例,具体如下:
1.注册一个新步兵,代码完全复制百合子,除了名字和Imamge,TechLevel=-1。
2.把百合子的UndeployDelay去掉,因为我发现加了这句,单位在主武器攻击时按D无法部署,只能把鼠标放单位身上点击才能部署,严重影响效果。
3.在百合子代码后面加上
DeployToTransform.Types=BHZD ;这里写的是新注册的单位名字
DeployToTransform.Nums=1
DeployToTransform.Chances=1.0
DeployToTransform.RandomType=no ;随机从列表中选取类型,并释放等于Nums列表中数值总和的礼物数量
DeployToTransform.RandomWeights=50
DeployToTransform.EliteTypes=BHZD ;这里写的是新注册的单位名字
DeployToTransform.EliteNums=1
DeployToTransform.EliteChances=1.0
DeployToTransform.EliteRandomType=no ;随机从列表中选取类型,并释放等于Nums列表中数值总和的礼物数量
DeployToTransform.EliteRandomWeights=50
DeployToTransform.InheritTarget=yes ;继承原单位的目标
DeployToTransform.InheritExp=yes ;如果可以升级则继承等级
DeployToTransform.InheritROF=no  ;一定为no,否则所有操作都没有任何意义了
DeployToTransform.InheritAmmo=yes ;如果有弹药则继承弹药,没有弹药生成有弹药,弹药箱清空
DeployToTransform.InheritAE=yes ;继承礼盒的AE
DeployToTransform.ForceMission=Deploy
4.新注册的单位代码加上
DeployToTransform.Types=BHZ ;这里写的是原单位的名字
DeployToTransform.Nums=1
DeployToTransform.Chances=1.0
DeployToTransform.RandomType=no ;随机从列表中选取类型,并释放等于Nums列表中数值总和的礼物数量
DeployToTransform.RandomWeights=50
DeployToTransform.EliteTypes=BHZ ;这里写的是原单位的名字
DeployToTransform.EliteNums=1
DeployToTransform.EliteChances=1.0
DeployToTransform.EliteRandomType=no ;随机从列表中选取类型,并释放等于Nums列表中数值总和的礼物数量
DeployToTransform.EliteRandomWeights=50
DeployToTransform.InheritTarget=yes ;继承原单位的目标
DeployToTransform.InheritExp=yes ;如果可以升级则继承等级
DeployToTransform.InheritROF=no ;yes或no都行,想逼真就yes
DeployToTransform.InheritAmmo=yes ;如果有弹药则继承弹药,没有弹药生成有弹药,弹药箱清空
DeployToTransform.InheritAE=yes ;继承礼盒的AE
DeployToTransform.ForceMission=None

5.把原单位的art代码复制一份,名字改成新单位的。然后原单位序列里的
Deploy=Deployed=
DeployedIdle=
DeployedFire=
Undeploy=
都改得写0,1,1
把原单位的shp文件复制一份,名字改成新注册单位的名字。

简单概括就是点击部署其实是变成了另一个长得一样的新单位,新单位立即部署,释放武器,不会受原单位主武器CD的影响,接着又自动变回原单位,期间非常顺滑,毫无破绽。
不过其实在我这是有一个问题的,我的百合子是限造一个的英雄单位,部署时建造栏会一瞬间变亮又变灰……但早些时候我已经解决过这个问题。具体见链接
单位转换会解除BuildLimit的解决办法
虽然prerequisite.negative可以屏蔽掉原单位,但会导致语音提示和建造栏一瞬间变化产生破绽,这和不解决也没区别。而且只能应用于限造一个的情况,如果限造2个就无能为力了,我的替身法则没有以上问题。





发表于 2023-4-23 13:56:50 来自手机 | 显示全部楼层
本帖最后由 ruanhuhu 于 2023-4-23 14:22 编辑

按照你的代码 尤里不会释放之前控制的单位吗

不如主武器0攻击间隔 然后弹药数1 用弹药恢复速度作为限制 副武器不消耗弹药
我都试过了 只需要以下几句代码就好了

[YURI]
Ammo=1
Reload=200 ;这个间隔就是主武器实际开火间隔 没有弹药打不出去

[MindControl]
ROF=1 ;间隔从200改为1

[PsiWave]
Ammo=0

回复

使用道具 举报

 楼主| 发表于 2023-4-23 15:17:26 | 显示全部楼层
ruanhuhu 发表于 2023-4-23 13:56
按照你的代码 尤里不会释放之前控制的单位吗

不如主武器0攻击间隔 然后弹药数1 用弹药恢复速度作为限制 副 ...

额……我想出这个办法初衷不是为了尤里x,是为了我的百合子,所以没想过尤里x会怎样,也没打算用我的方法修正尤里x,因为一楼也说了尤里x一般也不会遇到这种问题。

我刚刚试了下你的方法,确实可以,很好得解决了问题,美中不足就是我的百合子的副武器设定CD很长,于是设置了消耗1个弹药,方便查看技能cd情况,如果用你的方法,副武器的CD情况就无法查看了。
回复

使用道具 举报

发表于 2023-4-23 15:24:22 | 显示全部楼层
jgaxmey 发表于 2023-4-23 15:17
额……我想出这个办法初衷不是为了尤里x,是为了我的百合子,所以没想过尤里x会怎样,也没打算用我的方法 ...

那就副武器开火给自己挂AE AE动画直接做个倒计时
回复

使用道具 举报

 楼主| 发表于 2023-4-23 15:27:13 | 显示全部楼层
本帖最后由 jgaxmey 于 2023-4-23 16:50 编辑
ruanhuhu 发表于 2023-4-23 15:24
那就副武器开火给自己挂AE AE动画直接做个倒计时

我又试了一下,发现其实我的百合子不需要用我的方法,也不需要用你的方法,只需要把主武器rof改成1就行了……因为我的百合子的主武器本来就是个假的,主要功能是通过替身实现的,攻速快不快其实都一样……
于是,第三种方法出现了……
把单位的主武器改成一个假武器,rof=1,通过替身或者额外武器发射原有的主武器。这种方法效果应该比前两种都好。
回复

使用道具 举报

发表于 2023-4-23 18:07:21 来自手机 | 显示全部楼层
jgaxmey 发表于 2023-4-23 15:27
我又试了一下,发现其实我的百合子不需要用我的方法,也不需要用你的方法,只需要把主武器rof改成1就行了 ...

然而多一个替身相当于多一个单位 单位越多越会卡顿 对于原来存在的单位 仅用我给的代码就足够了
回复

使用道具 举报

 楼主| 发表于 2023-4-23 22:07:26 | 显示全部楼层
ruanhuhu 发表于 2023-4-23 18:07
然而多一个替身相当于多一个单位 单位越多越会卡顿 对于原来存在的单位 仅用我给的代码就足够了 ...

嗯嗯,原版里用你的方法就足够了。不过即使在mod里,这种部署释放单次武器的单位也一般是英雄单位,有替身也就多一个单位,影响甚微,不用替身用额外开火也可以。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY论坛 |网站地图

GMT+8, 2026-5-2 18:31 , Processed in 0.079155 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表