铁锈战争地图触发代码参考(包括单位生成附加属性代码)(截至1.15)
Ham-Ster
编辑于 2025年07月09日 19:02

#参考自RT1_JMJS(极悦韵衡)(迷帆A组-RT1制作组)的1.14-地图代码文本版、KEND(迷帆B组-ECM制作组(ECM_MAP_TEAM))的触发参考批注

——————触发代码相关说明(第一部分)——————

●名称

○类型

◆属性名称

◇属性值

→介绍

——————属性附加代码相关说明(第二部分)——————

◆属性名称

◇属性值

■介绍

□特殊说明

——————额外说明——————

Infinity与NaN可以作为folat的值进行填写,其中-Infinity可以看作负无穷,Infinity与-NaN和NaN可以看作正无穷。

*注意大小写。

★★★★第一部分★★★★

————特殊触发(无法使用通用触发代码)————

┏●map_info

┃○

┞┄┄┄┄┄┄┄┄

├◆type

│→地图的类型

│◇survival

│→生存。这将会触发刷新波的机制,并且会在你初始指挥中心被摧毁后判定你为失败,单人模式下将会触发队友视野不共享的机制。当你设置为此类型时必须同时设置winCondition和attack_point。

│◇challenge

│→挑战。单人模式下将会触发队友视野不共享的机制。当你设置为此类型时必须同时设置winCondition。

│◇mission

│→任务。单人模式下将会触发队友视野不共享的机制。当你设置为此类型时必须同时设置winCondition。

│◇skirmish

│→遭遇战。最基础的类型,可以视作最简洁的地图触发启动模式,在为此属性的时候shareFogWithAllies等代码不会生效,同时无需设置winCondition等代码。

│注:你可能注意到了challenge与mission在表现上毫无区别,这是正常的。据LUKE所说,大多数情况下,它只是默认值和标记地图的一种方式,但是以后可能会用它做更多的事情。

├┄┄┄┄┄┄┄┄

├◆fog

│→雾的类型

│◇map

│→基础雾

│◇los

│→重雾

│◇none

│→无雾

│注:此设置会被房间里的游戏设置覆盖

├┄┄┄┄┄┄┄┄

├◆introText

│→在开局弹出的消息,可使用\n换行。

│◇[填写文本]

│注:需要设置在type后,否则会报错,但正常触发

├┄┄┄┄┄┄┄┄

├◆winCondition/loseCondition

│→胜利/失败条件。

│◇mainBuildings

│→所有可以生产的建筑物都被摧毁(可写作mainBuilings,别问为什么,问就是Luke溜大了写的代码)。

│◇allUnitsAndBuildings

│→所有的单位和建筑物都被摧毁。

│◇allBuildings

│→所有的建筑物都被摧毁。

│◇commandCenter

│→所有的指挥中心都被摧毁。

│◇requiredObjectives

│→所有的objective都被触发。

│◇none

│→不会胜利。

│注:loseCondition这条代码在1.15P版本被删除

├┄┄┄┄┄┄┄┄

├◆shareFogWithAllies

│→与队友共享雾,主要用途在当地图的type为mission、challenge、survival时允许队友间共享视野。

│◇[填写布尔值,true或false]

│注:此代码在map_info中优先级最高,但是目前在遭遇战模式和多人游戏中无效

├┄┄┄┄┄┄┄┄

├◆survivalWavesClassic

│→在生存模式下恢复成1.14之前的老式刷兵机制。

│◇[填写布尔值,true或false]

├┄┄┄┄┄┄┄┄

├◆startWithMusic

│→开局播放的音乐。

│◇[填写你的音乐文件名]

│例:

│startWithMusic:My music

│注:我把例子写在⊙startWithMusic Example⊙.rwmod里了,可以自行查看。

├┄┄┄┄┄┄┄┄

├◆survivalWaves

│→自定义生存波。

│◇[填写时间] [填写文本] - [填写整数] [填写单位名]

│例:

│+1:00 第一波 - 3 builder

│+1:50 第二波 - 3 builder, 5 fireBee

#│※暂时没用的代码。

#│[win]

#│→视为本局结束

#│[paused]

#│→暂停游戏

#│[noTimer]

#│→没有计时器

#│[lockSpawn]

#│→锁定生成器

#│[unlockSpawn]

#│→解锁生成器

#│例:

#│+0:01 [win]

┗┅┅┅┅┅┅┅┅

┏●

┃○team_info

┞┄┄┄┄┄┄┄┄

├◆credits

│◇[填写整数]

│→开始时该队伍所拥有的资金。

│注:此代码会被房间设置覆盖。

├┄┄┄┄┄┄┄┄

├◆team

│◇[填写整数]

│→所指定的队伍。

├┄┄┄┄┄┄┄┄

├◆disabledAI

│◇[填写布尔值,true或false]

│→AI是否无法控制这个队伍的单位。

│注:此代码优先级最高,但是在多人游戏中无效。

├┄┄┄┄┄┄┄┄

├◆lockAiDifficulty

│◇[填写整数]

│→锁定该队的AI难度。

│注:⇂关于数值对应AI难度显示的说明

│-2⇔Very Easy

│-1⇔Easy

│0⇔Medium

│1⇔Hard

│2⇔Very Hard

│3⇔Impossible

│其它整数(诸如4,-3)⇔Unknown

│注:数值大小会影响AI的经济增长,增长最小为经济每次加1。

├┄┄┄┄┄┄┄┄

├◆allyGroup

│◇[填写整数]

│→指定这个队伍所属的阵营。

│注:此代码会被房间设置覆盖。

├┄┄┄┄┄┄┄┄

├◆ai

│◇survival

│→可以让AI更主动地送兵

│注:建造者什么的也会被拿去送,而且对面没有对应的能攻击的单位的话不会移动这个单位。(也就是说当你没有空中单位的时候对方的拦截机并不会过来)

├┄┄┄┄┄┄┄┄

├◆basicAI

│◇

│→让AI不建造建筑物,但是会保持出兵。

│注:此代码在多人游戏中无效。

┗┅┅┅┅┅┅┅┅

┏●

┃○rotate

┞┄┄┄┄┄┄┄┄

├◆dir

│◇[填写浮点数]

│→单位旋转角度。

┗┅┅┅┅┅┅┅┅

┏●

┃○fall

┃→在开局时在该处生成的单位从天上降落。

┃注:对一些dex单位无效。

┗┅┅┅┅┅┅┅┅

┏●[填写文本]

┃○point

┃→结合move中的target使用。

┗┅┅┅┅┅┅┅┅

┏●camera_start

┃○

┃→开局视角所在地。

┞┄┄┄┄┄┄┄┄

├◆zoomTo

│◇[填写大于等于1的整数]

│→zoomTo可以选填,其用来缩放开局的视野。

┗┅┅┅┅┅┅┅┅

┏●

┃○camera_pan

┞┄┄┄┄┄┄┄┄

├◆index

│◇[填写大于等于0的整数]

│注:此代码只在menu_background中有效,也就是你刚进入游戏的背景地图。

┗┅┅┅┅┅┅┅┅

┏●

┃○ai_allow_full_use

┃→让AI更主动地使用这里的单位(类似于ai:survival这种效果)

┃注:此代码在多人游戏中无效。

┗┅┅┅┅┅┅┅┅

#┏●

#┃○disable_unit_ai

#┃→将会禁用AI对这个区域内的控制。

#┃注:目前失效,但是Luke说过会修。

#┗┅┅┅┅┅┅┅┅

┏●attack_point

┃○

┃→生存模式下的出兵点。

┗┅┅┅┅┅┅┅┅

┏●

┃○set_team

┞┄┄┄┄┄┄┄┄

├◆team

│◇[填写整数]

│→设置这个区域里的单位所属队伍。

┗┅┅┅┅┅┅┅┅

————一般触发(可以使用通用触发代码)————

注:下面触发独有的代码将会单独列出,与通用代码分开。

┏●

┃○move

┞┄┄┄┄┄┄┄┄

├◆target

│◇[填写文本]

│→对应目标point的名称。

├┄┄┄┄┄┄┄┄

├◆unload

│◇

│→如果是一个载具的话,当移动到目标点后将会卸载载具中的单位。

┗┅┅┅┅┅┅┅┅

┏●

┃○unitRemove

┃→移除这个区域内的指定队伍的单位。

┞┄┄┄┄┄┄┄┄

├◆onlyIfEmpty

│◇[填写布尔值,true或false]

│→只移除未搭载单位的单位。

│注:可能是bug导致的,又或者是1.16的更新动向。

┗┅┅┅┅┅┅┅┅

┏●

┃○unitDetect

┞┄┄┄┄┄┄┄┄

├◆onlyOnResourcePool

│◇[填写布尔值,true或false]

│→检测在资源坑上的建筑。

│注:例如矿坑上的资源抽取器。

├┄┄┄┄┄┄┄┄

├◆onlyMainBuildings

│◇[填写布尔值,true或false]

│→检测可生产单位的建筑物。

│注:例如陆军工厂。

├┄┄┄┄┄┄┄┄

├◆onlyBuildings

│◇[填写布尔值,true或false]

│→检测建筑物。

│注:例如陆军工厂。

├┄┄┄┄┄┄┄┄

├◆onlyBuilders

│◇[填写布尔值,true或false]

│→检测ini中拥有isBuilder:true的单位。

├┄┄┄┄┄┄┄┄

├◆onlyIdle

│◇[填写布尔值,true或false]

│→检测闲置中的单位。

│注:未被下达指令的的单位。

├┄┄┄┄┄┄┄┄

├◆onlyEmptyQueue

│◇[填写布尔值,true或false]

│→检测排列队列是空的的单位。

│注:例如当前一个单位建设/升级排列是闲置的。

├┄┄┄┄┄┄┄┄

├◆onlyIfEmpty

│◇[填写布尔值,true或false]

│→检测除了搭载了单位的单位之外的单位。

├┄┄┄┄┄┄┄┄

├◆onlyTechLevel

│◇[填写整数]

│→检测科技等级符合的单位。

├┄┄┄┄┄┄┄┄

├◆onlyAttack

│◇[填写布尔值,true或false]

│→检测有攻击性的单位。

│注:例如炮塔。

├┄┄┄┄┄┄┄┄

├◆onlyAttackAir

│◇[填写布尔值,true或false]

│→检测只攻击空中的单位。

│注:例如防空炮塔。

├┄┄┄┄┄┄┄┄

├◆onlyWithTag

│◇[填写单位tags后的文本]

│→检测具有特定标签的单位。

├┄┄┄┄┄┄┄┄

├◆includeIncomplete

│◇[填写布尔值,true或false]

│→检测范围扩大至未被完全建造的单位。

├┄┄┄┄┄┄┄┄

├◆unitType

│◇[填写单位名]

│→检测一个特定名称的单位。

│注:同一个触发内设置多个时只会读取并执行一个。

├┄┄┄┄┄┄┄┄

├◆minUnits

│◇[填写整数]

│→该宾语触发所满足的最小单位,如果达到则触发。

│例:你设置为minUnits:3,则这个区域内的单位≥3时宾语就会被触发。

│注:在逻辑合理的前提下,可以和maxUnits同时使用。

├┄┄┄┄┄┄┄┄

├◆maxUnits

│◇[填写整数]

│→该宾语触发所满足的最大单位,如果达到则触发。

│例:你设置为maxUnits:3,则这个区域内的单位≤3时宾语就会被触发。

│注:在逻辑合理的前提下,可以和minUnits同时使用。

┗┅┅┅┅┅┅┅┅

┏●

┃○unitAdd

┞┄┄┄┄┄┄┄┄

├◆spawnUnits

│◇[填写单位名]

│→生成单位。

│例:

│spawnUnits:tank*2,builder*1

┗┅┅┅┅┅┅┅┅

┏●

┃○teamTagDetect

┞┄┄┄┄┄┄┄┄

├◆teamTag

│◇[填写队伍标签名]

│注:我把例子写在⊙Map Examples⊙.rwmod里了,可以自行查看。

┗┅┅┅┅┅┅┅┅

┏●

┃○teamTags

┞┄┄┄┄┄┄┄┄

├◆addTeamTags

│◇[填写队伍标签名]

│注:我把例子写在⊙Map Examples⊙.rwmod里了,可以自行查看。

├┄┄┄┄┄┄┄┄

├◆removeTeamTags

│◇[填写队伍标签名]

│注:我把例子写在⊙Map Examples⊙.rwmod里了,可以自行查看。

┗┅┅┅┅┅┅┅┅

┏●

┃○basic

┃→自身没有任何功能,但是可以用来做链接激活的占位符。

┗┅┅┅┅┅┅┅┅

┏●

┃○info

┃→自身不会被游戏读取,可以在Triggers层作注释。

┗┅┅┅┅┅┅┅┅

┏●

┃○objective

┃→自身没有作用,可以用来作为winCondition为requiredObjectives时的胜利条件。

┗┅┅┅┅┅┅┅┅

┏●

┃○mapText

┞┄┄┄┄┄┄┄┄

│◆text

│◇[填写文本]

├┄┄┄┄┄┄┄┄

├◆text_[国家语言代码]

│◇[填写文本]

│例:text_zh

│→设置针对不同语言显示的文本。

├┄┄┄┄┄┄┄┄

├◆style

│◇arrow

│→在这个地点做一个向下指的标记,类似text。

├┄┄┄┄┄┄┄┄

├◆textColor

│◇green/red/blue/yellow/cyan/white/black/purple/[#00000000~FFFFFFFF]

│例:textColor:#5CA362CC

│注:前两位是透明度,默认为不透明。

├┄┄┄┄┄┄┄┄

├◆textOffsetX

│◇[填写浮点数]

│→文本横向偏移量。

├┄┄┄┄┄┄┄┄

├◆textOffsetY

│◇[填写浮点数]

│→文本纵向偏移量。

├┄┄┄┄┄┄┄┄

├◆textSize

│◇[填写整数]

│→文本大小,数字越大字符越大,默认为20左右。

┗┅┅┅┅┅┅┅┅

┏●

┃○changeCredits

┞┄┄┄┄┄┄┄┄

├◆add

│◇[填写整数]

│→添加资金,可为负数。

├┄┄┄┄┄┄┄┄

├◆set

│◇[填写整数]

│→将资金在这个时刻设置在一定数量。

┗┅┅┅┅┅┅┅┅

┏●

┃○moveCamera

┃→将视野强制移动到指定位置。

┗┅┅┅┅┅┅┅┅

————通用触发代码————

◆team

◇-2/none/-1/0/1/2/3/4/5/6/7/8/9

→※通常情况下必须填写,否则游戏会闪退。

注:建议用-1代替none,这两个是一个东西,但是none适配性拉垮,可能报错。

◆debugMessage

◇[填写文本]

→当在沙盒模式中开启debug模式后触发,该代码将会显示你所设置的信息。

◆globalMessage

◇[填写文本]

→全局消息。

◆globalMessage_[填写国家语言代码]

◇[填写文本]

例:

globalMessage_zh

→设置针对不同语言显示的全局消息。

◆globalMessage_delayPerChar

◇slow/[填写整数]

→全局消息弹出速度。

◆globalMessage_textColor

◇green/red/blue/yellow/cyan/white/black/purple/[#00000000~FFFFFFFF]

→全局消息的颜色。

例:

globalMessage_textColor:#5CA362CC

注:前两位是透明度,不写就是默认不透明。

◆id

◇[填写文本]

→可被用来检测。

注:不建议名称与id重复,可能会出问题。

◆warmup

◇[填写整数或文本]

→当这个宾语符合被触发的条件时,所呈现的效果将会根据你所设定的时间被延迟,延迟数值耗尽时这条宾语的各项代码才会被激活。如果触发来源在这段时间里失效,将不会触发这个宾语,当触发来源再次生效时将会重新计数。

注:3000为3s,也可以直接写成3s。在没有激活源的情况下,warmup和delay没有太大差别。

◆delay

◇[填写整数或文本]

→开局或重置后触发这个宾语的时间。

注:3000为3s,也可以直接写成3s。

◆activatedBy

◇[填写名称或id]

→将会检测所连接宾语的名称或id,如果连接来源其中一个处于激活状态就会被触发。可以设置多个连接。

例:

activatedBy:1,2

◆allToActivate

◇[填写布尔值,true或false]

→必须这个宾语连接的触发条件全被激活才会被触发。

例:

unitAdd:

activatedBy:1,2

allToActivate:true

team:0

spawnUnits:tank

unitDetect:

unitType:builder

id:1

team:0

basic:

delay:50000

id:2

◆repeatDelay

◇[填写整数]

→重复延迟。当这个宾语被触发之后,再次执行效果的时间。(会被deactivatedBy终止。)

◆deactivatedBy

◇[填写名称或id]

→宾语「0号」本身带有这个代码时,将会检测所连接宾语「1号」的名称或id,如果「1号」是激活状态,「0号」则会被禁止触发。可以设置多个连接。

◆alsoActivate

◇[填写名称或id]

→在这个宾语被触发之后将会触发这个宾语所连接的宾语。

例:

alsoActivate:3,4

◆resetActivationAfter

◇[填写整数]

→重置这个宾语的时间间隔。重置后,所有已经被触发的属性将会被清除并等待下一次触发。

注:若一个宾语同时设置resetActivationAfter和repeatDelay时,游戏只会读取数值最短的一项作重复触发效果。数值一样时,游戏取resetActivationAfter作效果,所以resetActivationAfter相对于repeatDelay优先级更高,当一个宾语无外在激活源时,resetActivationAfter和repeatDelay没有较大差别。

注:resetActivationAfter可以理解为多久时间重新检查这个宾语的触发属性或条件,如果满足则再次触发这个宾语,repeatDelay可以理解为当这个宾语被触发时多久时间再触发一次(两者可以想象为电路)。

◆activateIds

◇[填写名称或id]

→同alsoActivate。

◆whenActivatedIds

◇[填写名称或id]

→同activatedBy。

◆showOnMap

◇[填写布尔值,true或false]

→当宾语被激活后在小地图上产生蓝色的标记提示。

◆comment

◇[填写文本]

→不会被读取,充当注释作用。

★★★★第二部分★★★★

——————属性附加代码相关说明——————

例:

spawnUnits:ladybug(spawnChance=0)

注:此附加属性在customSurvival中对由游戏自动刷新的敌方单位无法使用。

●neutralTeam

○=[填写布尔值,true或false]

■生成中立队伍。

●aggressiveTeam

○=[填写布尔值,true或false]

■生成全局敌对队伍。

●spawnChance

○=[填写0到1之间的浮点数]

■单位生成概率。

●maxSpawnLimit

○=[填写整数]

■与spawnChance搭配使用,作为单位的最大生成数量。

例:builder(spawnChance=0.5,maxSpawnLimit=1),tank(spawnChance=1,maxSpawnLimit=1)

效果为builder有0.5的概率生成,如果builder成功生成:因为tank被maxSpawnLimit=1限制,且此时已经成功生成了一个单位,所以即使tank的生成概率为1也不会进行生成,最终结果为场上只有一个builder。如果builder生成失败:则开始计算tank的生成概率,以此类推。

●techLevel

○=[填写整数]

■单位的科技等级,如果数值超出该单位的最大等级则会生成等级为一的单位。(值得注意的是,此处为该单位的科技等级。举个例子:此代码对mechFactory无效,因为它升级之后的name为mectFactoryT2,是另一个单位。)

□特殊应用:在damagingBorder和zoneMarker中代表的是圈的范围大小。(一个科技等级为五格)

●gridAlign

○=[填写布尔值,true或false]

■网格对齐

注:此处的对齐指的是你不往地图上面正常的x,y上生成单位,比如说x:11.4,y:5.14这样,一般来说这个建筑会歪的鬼畜,但是用了这个代码之后就会对齐碰撞箱了。

●skipIfOverlapping

○=[填写布尔值,true或false]

■如果单位不属于这个地形则跳过生成,比如说seaFactory不能放在陆地或岩浆上。

●falling

○=[填写布尔值,true或false]

■有单位从空中掉下来的效果,对大多数单位都会生效,极少部分dex单位此代码无效。有时候单位/建筑物的arm将错位到地下。

●offsetX

○=[填写浮点数]

■单位生成地点偏移度。(横轴)

●offsetY

○=[填写浮点数]

■单位生成地点偏移度。(纵轴)

●offsetRandomXY

○=[填写浮点数]

■单位生成地点随机偏移度。(横纵轴瞎球偏)

注:目前铁锈战争沙盒模式的随机系统有严重问题,建议在普通模式下测试代码效果。

●offsetRandomX

○=[填写浮点数]

■单位生成地点随机偏移度。(横轴偏移)

注:目前铁锈战争沙盒模式的随机系统有严重问题,建议在普通模式下测试代码效果。

●offsetRandomY

○=[填写浮点数]

■单位生成地点随机偏移度。(纵轴偏移)

注:目前铁锈战争沙盒模式的随机系统有严重问题,建议在普通模式下测试代码效果。

●offsetHeight

○=[填写浮点数]

■单位生成高度,对部分dex单位无效果。

●offsetRandomDir

○=[填写浮点数]

■单位生成方向范围随机度。

●offsetDir

○=[填写浮点数]

■单位生成方向。