找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4956|回复: 4

单位转换会解除BuildLimit的解决办法

[复制链接]
发表于 2022-12-21 22:39:41 | 显示全部楼层 |阅读模式
本帖最后由 jgaxmey 于 2022-12-21 22:53 编辑

Ares变形逻辑遇到一些问题,想请教各位大佬    @云茹的堡儿 @kinghaoren
这个贴提出的这个问题。我也因为这个原因没有使用过一些功能。双杀大佬说Transform一样会解除buildlimit,Ares的Cover也一样解除,不过我的单位用的变形ae没有解除buildlimit,不知道什么原因,但这是好事,我就不管了。但是变形总归有一些限制,不如转换好用,还是要解决这个问题。原帖大佬们提出了屏蔽建造,但这个方法对于buildlimit=5这种情况无能为力,而且屏蔽掉,建造栏里没那个单位了也怪怪的,变来变去还有语音提示。最终想出一个办法,目前没发现bug。

假设单位A限制造五个,A能转换为B,那我们就给B一个出生自带的替身,替身写A,这样,当A变为B的时候,A仍然以替身的形式存在,建造限制就不受影响了,实际测试,建造栏里看不出变化,也没有语音提示,非常丝滑。但是替身不能被看到,就让他的位置跑到地图外面吧。大概这样写就行:
[ceshi]
Duration=500
HoldDuration=yes ;不进行有效期计时,即无限时间
ResetDurationOnReapply=no ;如果不允许叠加,持续过程中重复赋予时是否重置计时器
DiscardOnEntry=no ;离开地图后是否即刻失效
PenetratesIronCurtain=yes ;用于弹头附加时是否穿透铁幕
FromTransporter=no ;乘客使用弹头附加时,视为乘坐的载具使用弹头附加
ReceiverOwn=yes ;用于弹头附加时,AE属于被赋予对象
Cumulative=no ;是否允许同名AE进行叠加,yes=可叠加作用;no=不可叠加;attacker=来源不同的攻击者允许叠加
Group=-1 ;分组,同一个分组的效果互相影响,削减或增加持续时间
OverrideSameGroup=yes ;同一个分组已存在,再赋予则覆盖
AttachOnceInTechnoType=yes ;用于出厂附加时,只在单位生成时附加一次,不会在Delay后重新获得
AttachWithDamage=yes ;用于弹头附加时,随着伤害附加,而不是按弹头爆炸位置附加,如在使用AmbientDamage时

; 模块:替身 —— AE生效期间,为附着对象添加一个独立单位做替身,替身会始终跟随使者行动
Stand.Type=转换后的单位 ;替身类型,可以是虚拟单位
Stand.Offset=10000,10000,300 ;替身的位置,单位的FLH,+F在建筑的右下方,
Stand.LockDirection=no ;强制固定替身朝向始终保持与使者的方位,无论替身是否正在攻击目标
Stand.FreeDirection=no ;完全不控制替身的朝向,由替身自由行动,默认情况下替身会在失去目标之后回归到初始朝向
Stand.IsOnTurret=no ;替身绑定在炮管上
Stand.IsOnWorld=yes ;替身绑定位置以世界坐标做参考,固定朝向北方,不跟随转动
Stand.DrawLayer=NONE ;替身的渲染层设置,当ZOffset不为0时启用,NONE为自动识别,NONE\UNDERGROUND\SURFACE\GROUND\AIR\TOP
Stand.ZOffset=14 ;替身在ZAdjust偏移值,正值在上层,负值在下层,火车类型无效
Stand.SameHouse=yes ;替身跟随附属对象的所属变化,本体属性变化如心控,替身所属也跟随变化
Stand.SameTarget=no ;强制替身与使者攻击同一个目标
Stand.SameLoseTarget=yes ;使者失去目标同时替身也失去
Stand.SameAmmo=no ;强制替身弹药数量与使者相同
Stand.UseMasterAmmo=no ;替身在开火时消耗使者的弹药,SameAmmo启用时自动开启
; Stand.SamePassengers=no ;替身使用JOJO的乘客空间,JOJO的乘客等同于替身获得乘客
Stand.ForceAttackMaster=no ;替身强制选定使者为目标
Stand.MobileFire=yes ;使者在移动时替身仍可攻击
Stand.Powered=no ;替身需要电力支持才能攻击
Stand.Immune=yes ;替身是否可以收到伤害
Stand.DamageFromMaster=0.0 ;替身是否分摊使者收到的伤害,如果替身无法受伤,则不会分摊,如果弹头无法对替身造成伤害,同样分摊
Stand.DamageToMaster=0.0 ;使者是否分摊替身收到的伤害,如果使者无法受伤,则不会分摊,如果弹头无法对使者造成伤害,同样分摊
Stand.Explodes=no ;替身死亡时爆炸
Stand.ExplodesWithMaster=no ;替身在JOJO死亡时爆炸,覆盖上一条设置
Stand.PromoteFromMaster=no ;强制替身等级与使者相同
Stand.ExperienceToMaster=1.0 ;替身可以训练时,分多少经验给使者,替身不能训练时,击杀100%经验转给使者
Stand.SelectToMaster=yes ;当替身被选中时,转移选中使者
Stand.VirtualUnit=yes ; 虚拟单位,不存在于地图上的单位,不可以被选中

不是所有语句都需要,我为了保险都写了。
对了,这个方法对于ares的水上转换无效。因为水上转换后的单位似乎不能带上出场ae。针对这个问题我也想了办法,把原单位A复制一遍,改名B,限制建造,然后原单位改为不可建造,B加上一个礼盒ae,让B造出来就变成A,A再附加替身B,不过B还会继续变形,我尝试让礼盒必须受到伤害才能拆开,礼盒ae再加个自损效果,替身是无敌的,不会受到伤害,这样替身B就不会继续转换。不过实际测试无延迟拆盒会导致出不了战车工厂,出来再拆盒就能看出来顿了一下,而且一开始替身B不能再拆盒,但改着改着替身B也开始拆盒了,我就暂时放弃了,反正我没有这种单位,谁如果有这种单位可以费脑子想想有没有办法。
这个方法同时也能解决二选一建造的问题。比如谭雅和boris都能造,但同时只能选一个,原帖也是用的屏蔽建造,用本方法,谭雅挂boris替身,造了谭雅,boris就不能造了,建造栏还有boris,但是灰色的,这样感觉效果好一些


发表于 2022-12-22 11:03:43 | 显示全部楼层
这样看似解决了问题,但是绕了这么大个的弯真的合理吗?我个人的想法还是双杀大佬说的那样,用变形单位做前提条件,否决了现有单位。虽然可能会出现前置的否决,好歹也限制了建造过多,不过实现起来不会绕那么多弯。
回复

使用道具 举报

发表于 2022-12-22 12:46:29 | 显示全部楼层
我是直接挂个建筑替身,然后变形前的单位加prerequisite.negative,这样把原有单位的建造选项暂时删掉。变形后的单位的图标和变形之前一致,加buildlimit,prerequisite加上建筑替身,变形单位的建造图标就会在变形后出现。当然如果有多个buildlimit,造出来的就只会是变形后的样子。
回复

使用道具 举报

 楼主| 发表于 2022-12-22 18:51:41 | 显示全部楼层
kinghaoren 发表于 2022-12-22 11:03
这样看似解决了问题,但是绕了这么大个的弯真的合理吗?我个人的想法还是双杀大佬说的那样,用变形单位做前 ...

就加了一个替身,算不上大弯吧,相比有些效果需要各种功能组合利用来实现,这个属于非常简单的运用了。虽然我写的很长,但原理是很简单的。我倒数第二段写的挺复杂,但跟前面的解决方法关系不大,是解决一种罕见情况的补充设想,不看也行。
双杀大佬的办法没法解决buildlimit=5这种情况,而且那个否决虽然需要的语句少,但写起来需要好几个功能组合,我这个方法直接复制我写的那一段ae,修改红字即可。
回复

使用道具 举报

 楼主| 发表于 2022-12-22 18:53:18 | 显示全部楼层
Iniceboatu 发表于 2022-12-22 12:46
我是直接挂个建筑替身,然后变形前的单位加prerequisite.negative,这样把原有单位的建造选项暂时删掉。变 ...

嗯,限制一个的情况你这种方法也可行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-29 07:53 , Processed in 0.050757 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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