“经典触发条件”的版本间的差异
Chinodaisuki(讨论 | 贡献) 小 |
|||
(未显示2个用户的5个中间版本) | |||
第1行: | 第1行: | ||
== 相关 == | |||
在讲解触发之前,请确认已经明确的理解包括但不限于“参数”的知识 | 在讲解触发之前,请确认已经明确的理解包括但不限于“参数”的知识 | ||
关于其他语句的解析,请参阅以下页面: | |||
[[触发执行者]] | |||
[[经典触发条件]] | |||
[[经典触发动作]] | |||
[[EUD触发条件(EE2)]] | |||
[[EUD触发动作(EE2)]] | |||
== '''Accumulate''' == | == '''Accumulate''' == | ||
第29行: | 第42行: | ||
参数:无任何参数 | 参数:无任何参数 | ||
说明:触发条件写一个always和不写条件,在星际底层代码中的处理方式是一模一样的,都是向触发解释器返回TRUE。 | |||
== '''Bring''' == | == '''Bring''' == | ||
第77行: | 第92行: | ||
=== Anywhere === | === Anywhere === | ||
指需要检测的区域,Anywhere为整个地图,除 Anywhere 外,其他区域必须先画在地图上才会出现在触发的选项里 | 指需要检测的区域,Anywhere为整个地图,除 Anywhere 外,其他区域必须先画在地图上才会出现在触发的选项里 | ||
Anywhere本质上是星际默认存在的一个Location,其LocationID为64 | |||
== '''Command''' == | == '''Command''' == | ||
第125行: | 第142行: | ||
== '''Deaths''' == | == '''Deaths''' == | ||
功能:用于检测某玩家的某种单位的死亡数量,注意本处的“死亡”指的是游戏中的击杀,触发Kill、Remove的单位并不计算在内 | |||
参数:略 | 参数:略 | ||
== '''ElapsedTime''' == | == '''ElapsedTime''' == | ||
功能:用于检测游戏内已经经过的秒数,注意!该处的“秒数”指“游戏时间”而非“现实时间” | |||
参数:略 | |||
== '''HighestScore''' == | == '''HighestScore''' == | ||
功能:用于检测某项分数最高的玩家 | |||
参数:略 | |||
== '''Kills''' == | == '''Kills''' == | ||
功能:用于检测击杀数,注意!是“击杀数”而非“击杀分数”,普通触发可以自由读取击杀数和击杀分数,但只能修改击杀分数 | |||
参数:略 | |||
== '''LeastKills''' == | == '''LeastKills''' == | ||
功能:用于检测击杀数最少的玩家 | |||
参数:略 | |||
== '''LeastResources''' == | == '''LeastResources''' == | ||
功能:用于检测资源数最少的玩家 | |||
参数:略 | |||
== '''LowestScore''' == | == '''LowestScore''' == | ||
功能:用于检测某项分数最少的玩家 | |||
参数:略 | |||
== '''MostKills''' == | == '''MostKills''' == | ||
功能:用于检测击杀数最多的玩家 | |||
参数:略 | |||
== '''MostResources''' == | == '''MostResources''' == | ||
功能:用于检测资源数最多的玩家 | |||
参数:略 | |||
== '''Never''' == | == '''Never''' == | ||
功能:即字面上的“从不触发”,写了这个条件的触发永不执行,实际中几乎不用 | |||
参数:略 | |||
== '''Opponents''' == | == '''Opponents''' == | ||
功能:用于检测某位玩家还剩余多少位对手 | |||
参数:略 | |||
== '''Score''' == | == '''Score''' == | ||
功能:用于检测玩家的某项分数 | |||
参数:略 | |||
== '''Switch''' == | == '''Switch''' == | ||
功能:用于检测某个开关的状态 | |||
参数:略 | |||
== '''Condition #115''' == | |||
原版1.16.1中的功能:连续且仅使用两次这个条件,即可强行结束当前玩家的扫触发过程,并开始扫下一个玩家的触发。 | |||
重制版中的功能:相当于Never,没有实际意义。 | |||
参数:无 | |||
使用方法:使用SCMD默认的触发编辑器无法书写本条件,推荐使用TE+来书写,书写格式为:Condition(0, 0, 0, 0, 0, 115, 0, 0); | |||
说明:连续且仅使用2次这个条件才能生效,只使用一次或者超过两次都会导致星际1.16主程序崩溃。 |
2024年5月27日 (一) 14:36的最新版本
相关
在讲解触发之前,请确认已经明确的理解包括但不限于“参数”的知识
关于其他语句的解析,请参阅以下页面:
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主程序崩溃。