收起左侧

帝国时代3剧情编辑器切换贸易站资源选项触发程序

[复制链接]
こはね发表于 2020-5-19 19:14:18
用下面的触发程序可以将已经在编辑器放置好的贸易站切换运送资源选项,而不是默认使用运送经验选项。注:只能切换已经在编辑器放置的贸易站,玩家手动建造的贸易站无法切换。

帝国3剧情编辑器切换贸易站资源选项触发程序

帝国3剧情编辑器切换贸易站资源选项触发程序

帝国3剧情编辑器切换贸易站资源选项触发程序

帝国3剧情编辑器切换贸易站资源选项触发程序

该触发程序有6个选项,分别是Set Level?、"Trade Route"、"Level"、"Target TradingPost"、"1-Food;2-Wood;3-Coin;4-XP;else protoname"、"else-custom protoname"

帝国时代3剧情编辑器切换贸易站资源选项触发程序

帝国时代3剧情编辑器切换贸易站资源选项触发程序

"Set Level?"的作用是是否开启改变贸易路线等级,默认为OFF;如果"Set Level?"的状态为ON,那么后两个选项"Trade Route"与"Level"就会生效,如果为OFF,那么"Trade
Route"与"Level"无论设定什么值都会失效。

"Trade Route"为选取一条贸易路线,第一条贸易路线为0,第二条贸易路线为1,依此类推。

"Level"为设定贸易路线等级,0为马拉雪橇(或人力车),1为驿马车,2为火车

"Target TradingPost"为设定哪个贸易站切换按钮,你在剧情编辑器选择一个贸易站,然后按"Target TradingPost"按钮即可。

"1-Food;2-Wood;3-Coin;4-XP;else protoname"设定贸易路线按钮类型。1为运送食物按钮;2为运送木材按钮;3为运送黄金按钮;4为运送经验按钮;其他数值为自定义单位调用名,调用名在"else-custom protoname"输入。

"else-custom protoname"为自定义贸易路线按钮,该选项值输入单位调用名,(为什么是单位调用名?因为贸易站的内部设定就是运送单位,就算是那些资源按钮,本质上也是在运送资源箱,所以是单位调用名);设定这个设定主要是为了兼容MOD,因为MOD可以设定贸易路线运送单位。

触发程序:


<Effect name="*Advanced TP Set Command">
<Param name="SetLevel" dispName="Set Level?" VarType="bool">false</Param>
<Param name="TradeRoute" dispName="$$33881$$Trade Route" VarType="traderoute">1</Param>
<Param name="Level" dispName="Level" VarType="long">1</Param>
<Param name="TradingPost" dispName="Target TradingPost" varType="unit">default</Param>
<Param name="Command" dispName="1-Food;2-Wood;3-Coin;4-XP;else protoname" VarType="player">5</Param>
<Param name="Protoname" dispName="else-custom protoname" VarType="string">CrateofFood</Param>
<command>if(%SetLevel%==true)</command>
<command>{</command>
<Command>trTradeRouteSetLevel(%TradeRoute%, %Level%);</Command>
<command>}</command>
<Command>trUnitSelectClear();</Command>
<Command>trUnitSelect("%TradingPost%");</Command>
<Command>if(trUnitIsOwnedBy(trCurrentPlayer()))</Command>
<command>{</command>
<Command>xsSetContextPlayer(trCurrentPlayer());</Command>
<command>if(%Command%==1)</command>
<command>{</command>
<command>tradeRouteTrain(-1,kbGetBlockID("%TradingPost%"),kbGetProtoUnitID("CrateofFood"));</command>
<command>}</command>
<command>else if(%Command%==2)</command>
<command>{</command>
<command>tradeRouteTrain(-1,kbGetBlockID("%TradingPost%"),kbGetProtoUnitID("CrateofWood"));</command>
<command>}</command>
<command>else if(%Command%==3)</command>
<command>{</command>
<command>tradeRouteTrain(-1,kbGetBlockID("%TradingPost%"),kbGetProtoUnitID("CrateofCoin"));</command>
<command>}</command>
<command>else if(%Command%==4)</command>
<command>{</command>
<command>tradeRouteTrain(-1,kbGetBlockID("%TradingPost%"),kbGetProtoUnitID("CrateofXP"));</command>
<command>}</command>
<command>else</command>
<command>{</command>
<command>tradeRouteTrain(-1,kbGetBlockID("%TradingPost%"),kbGetProtoUnitID("%Protoname%"));</command>
<command>}</command>
<command>}</command>
</Effect>


下载本触发程序:

tpcommand.xml

安装方法:将tpcommand.xml复制到你的帝国3目录中的trigger3文件夹里面。
跳转到