经典触发条件

来自星际争霸重制版地图研究所
跳到导航 跳到搜索

相关

在讲解触发之前,请确认已经明确的理解包括但不限于“参数”的知识

关于其他语句的解析,请参阅以下页面:

触发执行者

经典触发条件

经典触发动作

EUD触发条件(EE2)

EUD触发动作(EE2)

Accumulate

功能:判断某个玩家或某些玩家的资源积累是否达到某个标准

参数:该条件包含4个参数

Player1

指某位玩家(例如Player4)或某些玩家(例如Force2)

at least

包含at least、 at most 、 exactly 三个选项。

at least 可翻译为“至少”,亦可翻译为“大于等于”

at most 可翻译为“至多”,亦可翻译为“小于等于”

exactly 可翻译为“等于”

0

条件数值,即某种资源(晶矿、瓦斯)需要满足的数值

ore

需要判定的资源类型,包含三个选项:ore (晶矿)、 gas(瓦斯) 、 ore and gas(晶矿和瓦斯)

Always

功能:使本条触发无条件执行

参数:无任何参数

说明:触发条件写一个always和不写条件,在星际底层代码中的处理方式是一模一样的,都是向触发解释器返回TRUE。

Bring

功能:用于判断某玩家是否在某区域中有某单位

参数:该条件包含5个参数

Player1

指某位玩家(例如Player4)或某些玩家(例如Force2)

exactly

包含at least、 at most 、 exactly 三个选项。

at least 可翻译为“至少”,亦可翻译为“大于等于”

at most 可翻译为“至多”,亦可翻译为“小于等于”

exactly 可翻译为“等于”

0

条件数值,即某种单位需要满足的数值

Terran Marine

指定的单位类型,包含星际中所有的228种单位以及4个通配符

通配符:在此处指[any unit] 、 [buildings] 、 [factories] 和 [men],其意义如下

[any unit]

翻译为“任何单位”,指代任意单位

例如“Player 1 brings at least 12 [any unit] to location 2”,可翻译为“玩家1在区域2中有12个任意单位”

[buildings]

翻译为“建筑”,此处检测的是单位高级属性中的[buildings] 标签,该标签可用EUD技术进行修改

即可以通过EUD技术制作出带有[buildings] 属性的机枪等奇怪的的单位,使其被该条触发的对应词条检测到

[factories]

翻译为“工厂”,通俗的讲可以指代所有可以出兵的建筑,具体情况请使用DatEdit查看具体单位的高级属性选项卡

与前文相同,可以通过EUD技术制作出带有[factories] 属性的机枪等奇怪的的单位,使其被该条触发的对应词条检测到

[men]

老实说[men]很难通过简单的话语描述清楚,简单的说,[men]指生产出的各种作战兵种、辅助兵种、资源采集者,具体情况请使用DatEdit查看具体单位的高级属性选项卡

与前文相同,可以通过EUD技术制作出带有[men] 属性的兵营等奇怪的的单位,使其被该条触发的对应词条检测到

Anywhere

指需要检测的区域,Anywhere为整个地图,除 Anywhere 外,其他区域必须先画在地图上才会出现在触发的选项里

Anywhere本质上是星际默认存在的一个Location,其LocationID为64

Command

功能:检测某玩家在整个地图上是否拥有某单位

参数:该条件包含4个参数

参数情况与上文中的 bring 基本相同,此处省略

CommandLeast

功能:检测某玩家是否控制了最少的某种单位

参数:略

CommandLeastAt

功能:检测某玩家是否在某个区域控制了最少的某种单位

参数:略

CommandMost

功能:检测某玩家是否控制了最多的某种单位

参数:略

CommandMostAt

功能:检测某玩家是否在某个区域控制了最多的某种单位

参数:略

CountdownTimer

功能:检测屏幕顶部的倒计时

参数:该条件包含2个参数

at least

包含at least、 at most 、 exactly 三个选项

at least 可翻译为“至少”,亦可翻译为“大于等于”

at most 可翻译为“至多”,亦可翻译为“小于等于”

exactly 可翻译为“等于”

0

条件数值,即倒计时需要满足的数值

注意,游戏顶部显示的倒计时是全部玩家使用的同一个倒计时,如果需要每个玩家使用单独的倒计时,需要用另外的办法

Deaths

功能:用于检测某玩家的某种单位的死亡数量,注意本处的“死亡”指的是游戏中的击杀,触发Kill、Remove的单位并不计算在内

参数:略

ElapsedTime

功能:用于检测游戏内已经经过的秒数,注意!该处的“秒数”指“游戏时间”而非“现实时间”

参数:略

HighestScore

功能:用于检测某项分数最高的玩家

参数:略

Kills

功能:用于检测击杀数,注意!是“击杀数”而非“击杀分数”,普通触发可以自由读取击杀数和击杀分数,但只能修改击杀分数

参数:略

LeastKills

功能:用于检测击杀数最少的玩家

参数:略

LeastResources

功能:用于检测资源数最少的玩家

参数:略

LowestScore

功能:用于检测某项分数最少的玩家

参数:略

MostKills

功能:用于检测击杀数最多的玩家

参数:略

MostResources

功能:用于检测资源数最多的玩家

参数:略

Never

功能:即字面上的“从不触发”,写了这个条件的触发永不执行,实际中几乎不用

参数:略

Opponents

功能:用于检测某位玩家还剩余多少位对手

参数:略

Score

功能:用于检测玩家的某项分数

参数:略

Switch

功能:用于检测某个开关的状态

参数:略

Condition #115

原版1.16.1中的功能:连续且仅使用两次这个条件,即可强行结束当前玩家的扫触发过程,并开始扫下一个玩家的触发。

重制版中的功能:相当于Never,没有实际意义。

参数:无

使用方法:使用SCMD默认的触发编辑器无法书写本条件,推荐使用TE+来书写,书写格式为:Condition(0, 0, 0, 0, 0, 115, 0, 0);

说明:连续且仅使用2次这个条件才能生效,只使用一次或者超过两次都会导致星际1.16主程序崩溃。