收起左侧

求助,想把工厂改成可重建的但出了问题

[复制链接]
纳索的莫里斯发表于 2 小时前
我参考了俄罗斯那张卡“设置军营”,把其中的代码(添加建筑到探险家的建造栏)修改后添加到AAStandardStartingTechs这个西方国家共用的科技树里:
<tech name="AAStandardStartingTechs" type="Normal">
<dbid>821</dbid>
<displaynameid>27845</displaynameid>
<status>UNOBTAINABLE</status>
<flag>Shadow</flag>
<effects>
<effect mergeMode='add' type="CommandAdd" proto="Factory" page="6" column="-1">
<target type="ProtoUnit">Explorer</target>
</effect>
<effect mergeMode='add' type="Data" action="Build" amount="1.00" subtype="WorkRate" unittype="Factory" relativity="Assign">
<target type="ProtoUnit">Explorer</target>
</effect>
<effect mergeMode='add' type="CommandAdd" proto="Factory" page="6" column="-1">
<target type="ProtoUnit">deGeneral</target>
</effect>
<effect mergeMode='add' type="Data" action="Build" amount="1.00" subtype="WorkRate" unittype="Factory" relativity="Assign">
<target type="ProtoUnit">deGeneral</target>
</effect>
<effect mergeMode='add' type="CommandAdd" proto="Factory" page="6" column="-1">
<target type="ProtoUnit">deGeneral2</target>
</effect>
<effect mergeMode='add' type="Data" action="Build" amount="1.00" subtype="WorkRate" unittype="Factory" relativity="Assign">
<target type="ProtoUnit">deGeneral2</target>
</effect>
<effect mergeMode='add' type="CommandAdd" proto="Factory" page="6" column="-1">
<target type="ProtoUnit">deGrandMaster</target>
</effect>
<effect mergeMode='add' type="Data" action="Build" amount="1.00" subtype="WorkRate" unittype="Factory" relativity="Assign">
<target type="ProtoUnit">deGrandMaster</target>
</effect>
</effects>
</tech>
当然也把类似的代码添加到了YPAge0ChineseTechs里,因为中国也能从俄罗斯盟友那里获得工厂。
然后把设置军营中的另一段代码修改后(工厂的建筑上限+1)增加到工厂、工业革命、强盗贵族等所有运输一辆工厂马车到殖民地的船运卡/科技中,因为数量很多,我这里仅以工厂卡为例:
<tech name="HCUnlockFactory" type="Normal">
<dbid>625</dbid>
<displaynameid>25932</displaynameid>
<cost resourcetype="Ships">1.0000</cost>
<researchpoints>40.0000</researchpoints>
<status>UNOBTAINABLE</status>
<icon>resources\art\buildings\factory\shared_factory_icon.png</icon>
<rollovertextid>25931</rollovertextid>
<flag>HomeCity</flag>
<effects>
<effect mergeMode='add' type="Data" amount="1.00" subtype="BuildLimit" relativity="Absolute">
<target type="ProtoUnit">Factory</target>
</effect>
</effects>
</tech>

以上是techtreemods里修改的部分。
在protomods里,增加了限制工厂修建数量为0的代码:
<Unit mergeMode='modify' name="Factory">
<buildlimit>0</buildlimit>
<allowedage>3</allowedage>
</Unit>

类似的,我也对日本的道场进行了修改,日本的道场ypDojo一开始建造上限就是0,没有改,道场卡也是建造上限+1、运送一辆道场人力车到殖民地的代码内容,和我修改过的工厂卡没什么区别,也不改,只是在YPAge0JapaneseTechs里添加了如下代码,目的是让日本僧侣能够重建道场:
<effect mergeMode='add' type="CommandAdd" proto="ypDojo" page="6" column="-1">
<target type="ProtoUnit">ypMonkJapanese</target>
</effect>
<effect mergeMode='add' type="Data" action="Build" amount="1.00" subtype="WorkRate" unittype="ypDojo" relativity="Assign">
<target type="ProtoUnit">ypMonkJapanese</target>
</effect>
<effect mergeMode='add' type="CommandAdd" proto="ypDojo" page="6" column="-1">
<target type="ProtoUnit">ypMonkJapanese2</target>
</effect>
<effect mergeMode='add' type="Data" action="Build" amount="1.00" subtype="WorkRate" unittype="ypDojo" relativity="Assign">
<target type="ProtoUnit">ypMonkJapanese2</target>
</effect>

问题来了,我用日本和法国分别进行测试,日本可以正常发送道场卡,可以重建;法国无法发送工厂卡,显示为红色不可用状态,提示已达到建筑上限,不可发送该卡。我想知道为什么两者代码基本没区别,日本可以正常发卡,法国就不行?

跳转到