特效字符串

“特效字符串”由“子特效字符串”组合拼接而成。每个“子特效字符串”都能独立的实现自己的功能。

标准参数

一个标准的“子特效字符串”(如子特效字符串(集结))具有4个参数:

发动时间

指何时触发该子特效字符串。

所有发动时间

  • 自身注卵时:此卡牌注卵单位到任意卡牌时触发。如何才算“注卵”单位,请参考奖励效果中的“奖励效果(单位)”。
  • 自身升级完成时:此卡牌获得升级的时候触发。
  • 自身任务重置时。
  • 自身任务完成时(处于任意任务完成之后):括号中文字的意思是任意任务完成时,先触发“发动条件为‘任意任务完成时’”的子特效字符串,再触发“发动条件为此条件”的子特效字符串。
  • 自身任务完成时:与4相反,先触发“发动条件为此条件”的子特效字符串,再触发“发动条件为‘任意任务完成时’”的子特效字符串。
  • 自身快速生产时。
  • 自身空投时:已废弃。
  • 自身进入战场时:已废弃。
  • 自身进场时:只算进场,三连不会触发该特效。
  • 自身进场和出售时。
  • 自身交换时:已废弃。
  • 自身集结时:此卡牌的“子特效字符串(集结)”发动的时候触发,每轮集结仅生效一次(比如集结(2),你有4能量也只触发一次,你有卡牌「阿塔尼斯」也只触发一次。)
  • 自身获得黑暗值时:无论一次性获得多少黑暗值,只触发一次。
  • 自身更换挂件时。
  • 自身出售时。
  • 自身被征募时:已废弃。
  • 自身被移动时:移动指通过各种方式使得此卡牌位置发生改变。
  • 自身被夺取时。
  • 折跃到自身时:指任意单位折跃到此卡牌时触发。如何才算“折跃”单位,请参考奖励效果中的“奖励效果(单位)”。
  • 提升酒馆等级时。
  • 刷新完成时:指刷新酒馆,在完成刷新后触发。
  • 刷新时:也是刷新酒馆,与“刷新完成时”相比,触发时间更早。晚于扣除刷新费用,早于商店陈列的卡牌进行更新。
  • 任意注卵时:任意卡牌注卵单位到任意卡牌时触发。如何才算“注卵”单位,请参考奖励效果中的“奖励效果(单位)”。
  • 任意折跃时:任意卡牌折跃单位到任意卡牌时触发。如何才算“折跃”单位,请参考奖励效果中的“奖励效果(单位)”。
  • 任意我方卡牌进入战场时:不保证可行。
  • 任意三连时。
  • 任意任务重置时。
  • 任意任务完成时。
  • 任意其他种族卡牌获得虚空投影时(废弃):因为某个bug而废弃。
  • 任意快速生产时。
  • 任意空投时:已废弃。
  • 任意卡牌获得虚空投影时(废弃):因为某个bug而废弃。
  • 任意进化时:已废弃。
  • 任意进场时:指任意卡牌进场时,三连不会触发。
  • 任意交换时:已废弃。
  • 任意集结时:任意卡牌的“子特效字符串(集结)”发动的时候触发,每轮集结仅生效一次(比如集结(2),你有4能量也只触发一次,你有卡牌「阿塔尼斯」也只触发一次;但如果是多张卡牌各自触发集结,则算多次)。
  • 任意获得黑暗值时:一张卡牌无论一次性获得多少黑暗值,只触发一次;但如果是多张卡牌各自获得黑暗值,则算多次。
  • 任意更换挂件时。
  • 任意孵化时:任意卡牌孵化单位到任意卡牌时触发。如何才算“孵化”单位,请参考奖励效果中的“奖励效果(单位)”。
  • 任意敌方卡牌进入战场时:不保证可行。
  • 任意出售时。
  • 任意变异时:任意卡牌单位发生“变异”时触发。如何才算单位发生“变异”,请参考奖励效果中的“奖励效果(变更单位)”。
  • 任意被夺取时。
  • 每回合开始时。
  • 每回合结束时。
  • 获得水晶塔时:无论一次性获得多少水晶塔,只触发一次。
  • 辅助卡部署时。请参考诺娃的辅助卡设计。
  • 孵化到自身时:指任意单位孵化到此卡牌时触发。如何才算“孵化”单位,请参考“所奖励效果”中的“奖励效果(单位)”。

自制发动时间

若你想做一个“任意卡牌被摧毁时”的发动时间,可以参考以下步骤:

  1. 找到预设类型发动时间,在其中新增一个值,命名为“任意卡牌被摧毁时”。

位置

玩家卡牌特效>特效字符串>发动时间>发动时间

  1. 创建一个常量用于储存发动时间字符串。参考已有的常量_发动时间 - 任意集结时,创建一个常量_发动时间 - 任意卡牌被摧毁时值为WhenAnyDestroyed

位置

玩家卡牌特效>特效字符串>发动时间

  1. 修改函数发动时间字符串,如下图所示,在其中将前两步创建的东西进行绑定。

p17

位置

玩家卡牌特效>特效字符串>发动时间>发动时间字符串

  1. 在文件夹“特效检验”中创建动作任意卡牌被摧毁特效检验,如下图所示直接复制动作任意卡牌集结特效检验然后改名即可。

p18

你还需要把里面的任意集结时全部改为任意卡牌被摧毁时

位置

玩家卡牌特效>特效检验

  1. 在前四步完成之后,你已经实际上创建完成了。现在你需要在合适的时间去调用我们创建的动作任意卡牌被摧毁特效检验。显然,我们应该在任意一张卡牌被摧毁的时候调用。修改动作失去卡牌时,如下图所示,在最后调用动作任意卡牌被摧毁特效检验

p19

位置

卡牌>失去卡牌时

通过这5步,自制发动时间就完成了。这是“任意XXX”的制作步骤,而“自身XXX”步骤基本相同。

发动条件

所有发动条件

  • 发动条件(资源)
  • 发动条件(制定任务完成条件):参考任务
  • 发动条件(拥有单位类型):卡牌中具有改单位类型的单位时满足条件。
  • 发动条件(与):在条件A和条件B中填写“发动条件”,A和B需要同时满足,可以进行嵌套。
  • 发动条件(需要某种族的卡牌):参考卡牌「混合体巨兽」。
  • 发动条件(无条件)。
  • 发动条件(是具有该光环的第一张卡牌):请参考光环
  • 发动条件(是否具有三连效果):用于限定此子特效字符串只在三连后其作用,参考卡牌「阿塔尼斯」。
  • 发动条件(生物质兑换):废弃
  • 发动条件(任务完成):需要卡牌处于任务完成状态。
  • 发动条件(能量):也就是判断卡牌的能量强度。
  • 发动条件(零件):判断卡牌的零件数量。
  • 发动条件(科技挂件数量)

v3.7.8.7更新

发动条件(科技挂件数量)被修改为发动条件(挂件数量),可以判断“反应堆”,“高级科技挂件”的数量。

  • 发动条件(科技点数|满足自动扣除):废弃
  • 发动条件(卡牌种类计数)
  • 发动条件(卡牌位置):判断此卡牌的位置
  • 发动条件(卡牌排布):判断目前场上卡牌的位置情况
  • 发动条件(卡牌计数)
  • 发动条件(或):在条件A和条件B中填写“发动条件”,A和B只需满足其一,可以进行嵌套。
  • 发动条件(回合数):参数回合数类型为字符串。填写数字时表示第几回合时满足条件。填写字符串ThisRound表示仅卡牌进场后的当前回合满足条件,EvenRound表示仅偶数回合满足条件,OddRound表示仅奇数回合满足条件。
  • 发动条件(黑暗值):卡牌总黑暗值满足要求即可。
  • 发动条件(黑暗值-单次):需要卡牌一次性获得的黑暗值满足要求。
  • 发动条件(关联卡牌要求):所谓“关联卡牌”,就是发起特效检验的卡牌。若子特效字符串的“发动时间”为“任意出售时”,那发起特效检验的卡牌就是那张“被出售的卡牌”。

例如

你想实现“任意虫族卡牌出售时”,那么你不但需要“发动时间”为“任意出售时”,还需要用“发动条件(关联卡牌要求)”,判断关联卡牌是不是虫族卡牌。

  • 发动条件(关联卡牌过滤):另一种方式限制“关联卡牌”,如果你想同时限制,你需要使用“发动条件(与)”。它的第四个参数价值要求(-1为任意/-2为高于/-3为低于)是与此卡牌进行比较。
  • 发动条件(挂件类型)
  • 发动条件(概率):一定概率满足条件。0.5表示50%概率。
  • 发动条件(非):条件不满足的时候满足,满足的时候不满足,可以进行嵌套。
  • 发动条件(单位数量)

自制发动条件

若你想做一个“卡牌内单位的种类的数量大于/小于/等于某个值”的发动条件,可以参考以下步骤:

  1. 在文件夹“发动条件”中创建一个新的文件夹“条件(单位种类数量)”。

位置

玩家卡牌特效>特效字符串>发动条件

  1. 参考函数发动条件(单位数量)。在文件夹“条件(单位种类数量)”中新建一个函数发动条件(单位种类数量)(返回类型为字符串)。为其增加两个参数比较方式(类型为预设中的大于/等于/少于)和比较值(类型为整数)和一个局部变量String(类型为字符串)。StringTypeCount(这是需要你自定义的)打头,然后将参数拼接到String中。最后返回String。最终代码如图:

p20

各个参数需要用.隔开。实际使用中,我们需判断一张卡牌的种类数量需要等于5时,该函数返回的值将为:TypeCount.Equal.5。该字符串将储存在子特效字符串中。

  1. 参考函数判断条件(单位数量)。在文件夹“条件(单位种类数量)”中新建一个函数判断条件(单位种类数量)(返回类型为布尔)。你需要3个参数:玩家卡牌索引条件字符串。这里的条件字符串就是形如前面TypeCount.Equal.5的字符串。你需要使用函数子特效字符串的关键词第n个内部,将条件字符串进行拆分。例如将Equal5拆出来存在局部变量中。因此,我们首先算出卡牌中的种类数量,然后返回比较结果即可。比较用到的函数为根据比较运算符比较的结果(其功能可以右键跳至该字符串一探究竟)。最终代码如图:

p21

上图省略了计算种类数量的步骤。

  1. 找到函数条件关键字是否满足条件,在其最下面添加一个如图所示的条件分支。其作用为调用步骤3的函数判断条件(单位种类数量)进行判断。

p22

位置

玩家卡牌特效>特效字符串>发动条件>条件关键字是否满足条件

通过这4步,自制发动条件就完成了。可以明显看出,“发动条件”本质上是一个字符串。我们是先生成字符串,然后需要时,对字符串进行判断。

作用位置

作用位置有4个参数,作用是筛选出有效的卡牌供奖励效果使用。筛选出的卡牌可以是多张、1张或者无卡牌。子特效字符串运作时,作用位置筛选顺序为:作用位置B->最低星级->最高星级->作用位置A最低星级最高星级-1时,表示不受限制。筛选的结果将会是位置组成的字符串,例如结果为136时,指的就是1号位、3号位、6号位的卡牌。这些筛选出的卡牌被称为“作用卡牌”。

例如

我想筛选出最右侧的、不低于3星的人族卡牌,我需要这样填参数:

p23

这样会先找到所有人族卡牌,然后再剔除低于3星的卡牌,最后才选择所处位置最靠右的卡牌。

新增作用位置B的筛选

若你想筛选出价值超过10000的卡牌,可以参考以下步骤:

  1. 找到预设类型“作用位置B”,为其添加新的值价值超过10000.

位置

玩家卡牌特效>特效字符串>作用位置>作用位置B

  1. 找到函数作用位置中的综合 - 根据作用位置B切换(动作),添加如下条件:

p24

位置

玩家卡牌特效>特效字符串>作用位置>作用位置

  1. 找到函数寻找对应的卡牌2,在第一个If Then Else Multiple语句块中添加如下代码:

p25

位置

玩家卡牌特效>特效字符串>作用位置>寻找对应的卡牌2

通过这3步,就能实现筛选价值超过10000的卡牌了。然后你可以用来筛出所有价值超过10000的卡牌:

p26

此时函数作用位置返回的值为All.Over10000.-1.-1作用位置A作用位置B的实现方式类似。

奖励效果

奖励效果是子特效字符串最重要的部分。它决定了“子特效字符串”的最终功能。

所有奖励效果

  • 奖励效果(资源)
  • 奖励效果(转移单位)
  • 奖励效果(重置任务进度)
  • 奖励效果(重复):用于将多个相同的奖励效果重复拼接。
  • 奖励效果(运行触发器):为了应对各种特殊的效果,你可以选择通过“奖励效果触发器”自制奖励效果。后面会说明“奖励效果触发器”如何使用。
  • 奖励效果(移除首次记录器):废弃
  • 奖励效果(研究完成):废弃
  • 奖励效果(且):你需要多个奖励效果时使用,可以嵌套。
  • 奖励效果(空投交换):废弃
  • 奖励效果(升级):为“作用卡牌”添加升级,参数值升级索引-1时,获得随机升级。
  • 奖励效果(发现卡牌):为玩家发现卡牌某个星级的卡牌。参数值卡牌星级-1时,发现星级等于玩家当前酒馆等级的卡牌。
  • 奖励效果(酒馆等级和升级费用)
  • 奖励效果(精英化):将“作用卡牌”内的单位变为精英单位。参数精英类型的数量值小于0时,精英化所有该类型的单位。参数精英化类型(S)兼容前缀为(S)的特殊单位类型,比如(S)生物单位
  • 奖励效果(获得黑暗值)
  • 奖励效果(更新任务进度):参考任务
  • 奖励效果(复制单位):将被复制的卡牌位置的单位复制到作用位置的卡牌中。参数复制数量-1时,复制所有单位;为-2时,所有单位50%概率复制;为-3时,随机复制1个单位;为-4时,复制一个卡牌内数量最多的单位。
  • 奖励效果(夺取卡牌):参数触发夺取效果值为时,响应发动条件自身被夺取时任意被夺取时
  • 奖励效果(夺取单位):参数夺取的数量值为-1时,夺取所有单位;值为-3时,随机夺取1个单位。
  • 奖励效果(兑换单位):将“作用卡牌”内所有从单位类型的单位兑换为到单位类型,参数兑换比值为2.0表示二换一。
  • 奖励效果(单位):为“作用卡牌”添加单位。

获得方式

获得方式不同会触发不同的效果

  • 注卵:可以触发动作卡牌自身注卵特效检验任意卡牌注卵特效检验,从而具有发动时间自身注卵时任意注卵时的子特效字符串会被触发。
  • 折跃:与注卵相同,触发卡牌自身折跃特效检验任意卡牌折跃特效检验
  • 招募:废弃
  • 随机三选一折跃:另一种折跃,会从单位类型A单位类型B单位类型C中随机挑一个进行折跃,也会触发折跃相关的“特效检验”。
  • 普通:单纯获得单位,不触发特效检验
  • 空投:废弃
  • 附属建筑:废弃
  • 孵化:与注卵相同,触发卡牌自身孵化特效检验任意卡牌孵化特效检验
  • 补员:废弃
  • 奖励效果(摧毁卡牌):摧毁“作用卡牌”。击杀效果值为时,“作用卡牌”展示的单位会被击杀而不是被移除。
  • 奖励效果(变更卡牌):将“作用卡牌”变更。除了卡牌的单位和升级,卡牌所有属性都变为指定卡牌模板的属性。
  • 奖励效果(变更单位):参数从类型值为无游戏链接时,将任意类型单位变为到类型。参数变更的数量值为-1时,变更所有该类型的单位;值为-2时,变更一半。参数变更方式值为变异时,会触发任意卡牌变异特效检验(角色进化腔的技能就是使用奖励效果(变更单位),且变更方式值为变异,即使它被写作“进化”)。

自制奖励效果

虽然新的效果都可以通过奖励效果(运行触发器)解决,但是自制奖励效果是一种一劳永逸的方法。若你想做“奖励效果(获得暂存卡牌的单位)”,可以参考以下步骤:

位置

玩家卡牌特效>特效字符串>奖励效果

  1. 在文件夹”奖励效果“中新建函数奖励效果(获得暂存卡牌的单位)(返回类型为字符串)。添加5个参数:

参数说明

  1. 暂存卡牌索引:类型为整数,表示从哪张暂存牌获取单位。
  2. 单位类型:类型为单位类型,获取的单位类型。
  3. 单位过滤:为了过滤一些单位,比如只想要”生物单位“。
  4. 数量:获得的数量。
  5. 三连后效果倍率:三连后获得的数量为数量三连后效果倍率的积。

再创建一个局部变量StringStringGainUnitsInSavedCards(这是需要你自定义的)打头,然后用.将5个参数拼接到String中(形如GainUnitsInSavedCards.a.b.c.d.e)。最后函数返回String

我们计划暂存卡牌索引值为-1时,将从每张暂存卡牌获得单位,否则从特定某一张暂存卡牌获得单位。单位类型值为无游戏链接时,获取任意类型的单位,否则获得指定类型的单位。数量值为-1时,获取暂存卡牌的所有单位,否则获得固定数量的单位。
如果我们在实际使用中,想让”作用卡牌“获得每张暂存卡牌的1个生物单位(三连后获得2)。返回的String应该为GainUnitsInSavedCards.-1..Bio.1.[2.0]。其中三连后效果倍率2.0,为了防止其中的.被误认,实数需要放在[]中;单位类型无游戏链接,所以在String中是空的。

最终代码如图:

p27

2.在文件夹”奖励效果“中新建动作应用奖励效果(获得暂存卡牌的单位)。添加4个参数:

参数说明

  1. 玩家:类型为整数,触发的玩家。
  2. 卡牌索引:类型为整数,触发子特效字符串的卡牌的索引。
  3. 每一个效果的字符串:也就是函数奖励效果(获得暂存卡牌的单位)返回的字符串(如GainUnitsInSavedCards.-1..Bio.1.[2.0])。
  4. 子特效字符串:奖励效果所处于的子特效字符串。我们主要是为了获得其中的作用位置,从而获得”作用卡牌“。
  5. 已三连:值为触发三连效果。

第一步是将每一个效果的字符串拆开。你可以使用函数子特效字符串的关键词第n个内部来获得各个部分的字符串。如GainUnitsInSavedCards.-1..Bio.1.[2.0]中第4个内部为Bio,第6个内部为[2.0],对于有[]的字符串,你还需要使用函数去掉包裹的括号

p28

如上图,我们创建了5个局部变量并赋了值。你需要使用形如将字符串转换为XXX的函数来将字符串转换为整数或者其他类型。下面我们来具体实现获得暂存卡牌的单位。

  1. 找到暂存卡牌。在这之前,确保你理解商店卡牌和暂存区卡牌

p29

通过以上代码我们将有效的暂存卡牌索引存在有效暂存卡牌索引中。

  1. 找到获取的数量。

p30

  1. 遍历”作用卡牌“。你需要用到函数寻找对应的卡牌作用位置是一个字符串,如果其值为137,则表示1号位、3号位、7号位的卡牌。

p31

  1. 为每张”作用卡牌“从暂存卡牌中添加单位。

p32

  1. 。。。
  2. 。。。

奖励效果触发器

函数奖励效果(运行触发器),有4个参数。第一个参数触发器运行的就是“奖励效果触发器”。第二个参数需要选择队友值为时,“奖励效果触发器”可以获取玩家的盟友,仅在玩家存在盟友时生效。

对于“奖励效果触发器”,你可以使用全局变量获得类似“触发的玩家”、“触发的卡牌”等数据。你可以在下图的文件夹中找到“奖励效果触发器”可以使用的变量。

p33

位置

玩家卡牌特效>奖励效果触发器>可能用到的变量

我们可以看一下上图最下方的触发器示例

p34

你可以以此为模板制作自己的奖励效果触发器。

注意

尽量不直接使用奖励效果的全局变量,而是把它们存在局部变量中,再使用局部变量。因为触发器执行过程中,全局变量的值可能会发生更改。

各种子特效字符串

大多数“子特效字符串”进行区分,只是为了便于自动生成描述。本质上跟“子特效字符串(一般)”没有区别。因此“子特效字符串”可以分为两类:

  1. 一般子特效字符串
  • 子特效字符串(一般):万能。
  • 子特效字符串(一般|不自动生成描述):除了不会自动生成描述,其他跟子特效字符串(一般)一模一样。
  • 子特效字符串(孵化):不会触发“孵化”的检验。而是需要奖励效果(单位)的获得方式为孵化
  • 子特效字符串(注卵):不会触发“注卵”的检验。而是需要奖励效果(单位)的获得方式为注卵。其中,”作用位置B“值为虫卵时,场上没有“虫卵”时,会自动创建“虫卵”。
  • 子特效字符串(折跃):不会触发“折跃”的检验。而是需要奖励效果(单位)的获得方式为折跃
  • 子特效字符串(集结):能触发特效检验:卡牌自身集结特效检验任意卡牌集结特效检验
  • 子特效字符串(变异):不会触发“变异”的检验。而是需要奖励效果(变更)的变更方式为变异
  • 子特效字符串(制造):虽然只有两个参数,但是只是默认把发动时间设为了每回合结束时作用位置设为了自身
  • 子特效字符串(快速生产):只是把发动时间默认设为了自身快速生产时
  • 子特效字符串(快速光环特效):只是在前面加了“子特效字符串(光环)”,并且发动条件默认包含发动条件(是具有该光环的第一张卡牌)
  1. 特殊子特效字符串
  • 子特效字符串(无特效):毫无用处,返回空字符串。
  • 子特效字符串(任务制定):只起制定作用,具体怎么完成任务需要另行设置。参考任务
  • 子特效字符串(辅助卡牌):辅助卡牌只对指定卡牌起作用,所以“作用卡牌”就是辅助卡牌指定的那张卡牌。(“辅助卡牌”的实际作用是:选择一张卡牌,然后让那张卡牌执行“辅助卡牌”上的“特效字符串”,因此,实际上是被选择的卡牌自己执行“特效字符串”,“辅助卡牌”完全不会参与。)
  • 子特效字符串(总是折跃到此卡牌):早期设计的“子特效字符串”,虽然没有废弃。但现在完全可以用“光环”解决问题,因此如今有点多余。
  • 子特效字符串(定点部署):能让卡牌有定点部署功能。
  • 子特效字符串(简易快速生产):跟子特效字符串(快速生产)一样,只是将一些参数设为默认值。
  • 子特效字符串(反应堆生产变更):让卡牌的“反应堆”可以生产此单位。
  • 子特效字符串(科技生产变更):类似“子特效字符串(反应堆生产变更)”,但不确定如今是否起作用。
  • 子特效字符串(佣兵信标):不确定如今是否起作用。
  • 子特效字符串(光环):给卡牌标记一个光环,你可以随意设置光环字符串。你还可以结合发动条件(是具有该光环的第一张卡牌),实现“唯一”的效果。具体请参考光环
  • 子特效字符串(黑暗容器):让卡牌可以获得“黑暗值”。
  • 子特效字符串(黑暗印记):让卡牌“黑暗值”达到兑换比时,可以复活。
  • 子特效字符串(提供能量):充当“水晶塔”的效果,参数光环null时,多张卡牌都起效,否则多张相同光环卡牌只有一张起效。
  1. 废弃的
  • 子特效字符串(空投):废弃
  • 子特效字符串(采集):废弃
  • 子特效字符串(科研):废弃
  • 子特效字符串(空投交换):废弃
  • 子特效字符串(接口):废弃
  • 子特效字符串(空降):废弃

任务

光环

直接执行

我们知道“子特效字符串”本质上就是一个字符串,即使一张卡牌不具备某个“子特效字符串”,我们可以调用动作直接执行子特效字符串,来无视发动时间直接执行这个“子特效字符串”。

强制执行次数

用来设置子特效字符串重复执行的次数。若值为-1则按照默认次数执行。通常子特效字符串默认只执行一次,但例如“子特效字符串(集结)”会根据能量强度确定执行次数。可以参考卡牌「战斗号角」。

字符串?

这是卡牌「」Normal_的特效字符串。

自动生成描述