Kratos:说明书/礼盒
这是个什么东西
默认效果:一个对象获得这个效果器后,立刻移除单位,并生成新的单位。旧的单位逻辑上等效于死亡。原单位称为“礼物盒”,新单位称为“礼物”。
可以配置继承血量或血量数值、继承或指派新任务、不移除旧单位、继承原有AE(只能继承附着在礼物盒上的AE。如果礼物盒曾经给其他单位添加过AE,那么在礼物盒AE运行时,礼物盒单位会被移除,礼物单位无法成为其他单位身上已有AE的来源),获得新AE等效果。
特性&注意项
- 状态类效果,仅最后附上的生效
- 默认生成的礼物所属跟随礼物盒AE的来源。如需要打中敌人把敌人变形,但是不改变所属,则礼物盒应有ReceiverOwn
- KratosPP下,当GiftBox.Remove=no时,GiftBox.AttachEffects赋予给礼物的AE默认来源是礼物盒。如果你不想在礼盒和礼物盒之间建立绑定,让礼物刷出来时持有的AE来源是自己,则用礼物盒添加的AE应有ReceiverOwn=yes
- 如果GiftBox.Remove=no,且GiftBox有Duration,则Duration中每一帧都会生成一次。如果不写Duration,则会一直生成(AttachOnceInTechnoType=yes也会一直生成)。如果Duration=1,则无法生成。解法是Duration=1,InitialDelay=1。但是如果多个单位同时给自己反馈Duration=1的礼盒,就会因为时序出错导致部分单位贴不上。只是变身的话就别在礼盒上写持续时间了。如果你都用Remove=no了,说明你要普通地刷兵,那就用Host系列效果器。另外,如果给礼盒写了Duration=1,同时又Remove=yes,生成的单位有一定概率丢失原来的目标。
- 抛射体也可以贴礼物盒。如果加入GiftBox.OpenWhenDestroyed=yes,则会产生常规意义的刷兵效果。如果不加,则是攻击后立刻从炮口生成,这样生成的礼物单位会继承原单位的攻击目标,且刷出来时如果发射武器的单位被选中,则礼物也被玩家选中。刷出来的单位持有Guard任务,有目标但不会走近攻击,只有射程内的会攻击。如果需要让单位走过去,需要另外写AE让开出来的礼盒单位Mission改为Attack或Move,不能使用GiftBox.ForceMission,会掐断GiftBox.InheritTarget的效果
- 不要用在建筑上。将一个建筑礼盒变成另一个建筑时,会将建筑的实际foundation变成1x1。
- GiftBox.InheritAE=yes时,相应的AE上必须有Inheritable=yes 以及DiscardOnTransform=no,否则相关AE会在效果器执行后被删除。如果一个单位礼盒变成另一个单位
[TechnoType]&[AttachEffectType]
GiftBox.Types=(List of TechnoType)
礼物,默认none
GiftBox.Nums=(List of Integer)
数量,默认1,1
GiftBox.Chances=(List of Float/Integer - Precent)
抽中的概率,当决定要刷出这个类型时,可以刷出来的概率,每个类型单独计算概率,不写为100%,默认1.0,1.0
GiftBox.Delay=(Integer)
多久后开盒,默认0
GiftBox.RandomDelay=(Integer),(Integer)
随机延迟,默认0,300
GiftBox.RandomType=(Boolean)
随机从列表中选取类型,并释放等于Nums列表中数值总和的礼物数量,默认no
GiftBox.RandomWeights=(Integer)
随机从列表中选区类型,对应列表中每个类型的权重值,数字越大概率越高,默认1
GiftBox.EliteTypes=(List of TechnoType)
GiftBox.EliteNums=(List of Integer)
GiftBox.EliteChances=(List of Float/Integer - Precent)
GiftBox.EliteDelay=(Integer)
GiftBox.EliteRandomDelay=(Integer),(Integer)
GiftBox.EliteRandomType=(Boolean)
GiftBox.EliteRandomWeights=(Integer)
上列标签的Elite版本
GiftBox.Remove=(Boolean)
开盒后删除盒子,默认yes
GiftBox.Explodes=(Boolean)
删除盒子后会不会引起爆炸,触发死亡武器,默认no
GiftBox.RealCoords=(Boolean)
礼物释放在单位的实际位置,否则为逻辑中心,影响建筑,默认no
如果试图用GiftBox变建筑,必须为yes。并且为了避免诡异的抽风,需要多走一步1x1建筑跳转。如NAWEAP->YAWEAP, 需要写NAWEAP->GAPILL->YAWEAP才能正常。
GiftBox.RandomRange=(Integer)
礼物刷在附近随机范围内,单位格,默认0
GiftBox.RandomToEmptyCell=(Boolean)
礼物只在空地上刷,没有空地就刷在原地,默认no
GiftBox.OpenWhenDestroyed=(Boolean)
礼盒单位被摧毁时释放礼物,yes时仅在被摧毁时释放,延迟等设置无效,默认no
GiftBox.OpenWhenHealthPercent=(Integer - Precent)
指定收到伤害后,剩余血量低于这个值时释放,0-1,0%和100%都不会启用这个设置,如果伤害很大直接击杀不会释放,默认100%
GiftBox.OnlyOpenWhenMarks=(List of MarkType)
带有这些标记的时候才可以开盒,默认none
特殊设定-单位转换
GiftBox.IsTransform=(Boolean)
是否使用单位转换机制,默认no
启用后,礼盒将会强制删除,并不会发生爆炸,调整继承选项的默认值
GiftBox.HealthPercent=(Integer - Precent)
指定礼物的血量百分比,0-1,0或者0%,按照原单位血量百分比进行转换,默认100%
GiftBox.HealthNumber=(Integer)
直接指定礼物的血量数字,低于1,不使用,默认0
GiftBox.InheritHealthNumber=(Boolean)
指定礼物是否继承原单位的血量数字,非按比例转换,默认no
GiftBox.InheritTarget=(Boolean)
指定礼物是否继承原单位的目标,变身时默认yes,默认no。
如果GiftBox.Remove写了yes,则有一定概率丢失目标!
所以得写Remove为no,Next出一个DestroySelf来实现这一套。
GiftBox.InheritExp=(Boolean)
如果可以升级则继承等级,变身时默认yes,默认no
; GiftBox.InheritPassenger=(Boolean)
如果有乘客舱位则转移乘客,变身时默认yes,默认no
GiftBox.InheritROF=(Boolean)
继承ROF计时器,变身时默认yes,默认no
GiftBox.InheritAmmo=(Boolean)
如果有弹药则继承弹药,没有弹药生成有弹药,弹药箱清空,变身时默认yes,默认no
GiftBox.InheritAE=(Boolean)
当礼盒被摧毁,第一个礼物继承礼盒的AE,礼盒自身不会继承,变身时默认yes,默认no
AE挂载相关
GiftBox.RemoveEffects=(List of AttachEffectType)
移除礼物继承的AE,默认none
GiftBox.AttachEffects=(List of AttachEffectType)
给礼物附加AE,默认none
GiftBox.AttachChances=(List of Float/Integer - Precent)
附加效果的成功率,每个礼物单独计算,默认100%,100%
GiftBox.ForceMission=(MissionType)
强制设置礼物的任务,默认None
[AttachEffectType]
GiftBox.AffectWho=(Speical)
作用于谁,ALL\MASTER\STAND,默认MASTER