收起左侧

[求助] 复制新单位,但兵营不出兵,只有船运能出兵

[复制链接]
李名样dR发表于 2026-3-30 19:24:40
各位大佬想请教些问题,我是刚接触修改mod的新手,目前卡在圣典的2-1制作新单位那里:

1. 我复制了爪哇长枪兵这个单位,把需要改的都改了,可是在训练那里就失败了。测试下来,protomods文件已经有写入兵营训练的程式,可是兵营里一直没有出现,反而可以用船运呼叫出来,我不确定是哪部分的问题。
2. 革命之后才有的单位和原住民单位之类的有办法也从兵营之类的训练出来吗?还是需要重新制作新单位?
Weiluw0发表于 2026-4-1 07:35:33
光在protomod里面定义不够用,你还需要在techtreemods里面定义一下才行。你是用什么文明测试的?
  • 李名样dR : techtreemods也有定義,我用德國,決定版的,基本都有照著聖典做。有需要把整個檔案放上來檢查嗎?
李名样dR发表于 2026-4-1 19:14:06
  1. <protomods>
  2. <!--有問題,無法放入-->
  3. <unit name="Barracks">
  4. <train row="0" page="0" column="1">deJavaSpearman2</train>
  5. </unit>
  6. <!--自製爪哇長槍兵,兵營無法放入,只能船運-->
  7. <unit id="1660" name="deJavaSpearman2">
  8. <dbid>2231</dbid>
  9. <displaynameid>80715</displaynameid>
  10. <editornameid>80716</editornameid>
  11. <populationcount>1</populationcount>
  12. <obstructionradiusx>0.4900</obstructionradiusx>
  13. <obstructionradiusz>0.4900</obstructionradiusz>
  14. <formationcategory>Body</formationcategory>
  15. <maxvelocity>5.0000</maxvelocity>
  16. <maxrunvelocity>7.0000</maxrunvelocity>
  17. <movementtype>land</movementtype>
  18. <turnrate>18.0000</turnrate>
  19. <animfile>units\asians\shared\peasant\peasant.xml</animfile>
  20. <impacttype>Flesh</impacttype>
  21. <physicsinfo>dude</physicsinfo>
  22. <icon>resources\art\units\revolution\java_spearman_icon.png</icon>
  23. <portraiticon>resources\art\units\revolution\java_spearman_portrait.png</portraiticon>
  24. <rollovertextid>80717</rollovertextid>
  25. <shortrollovertextid>25696</shortrollovertextid>
  26. <initialhitpoints>200.0000</initialhitpoints>
  27. <maxhitpoints>200.0000</maxhitpoints>
  28. <los>15.0000</los>
  29. <unitaitype>HandCombative</unitaitype>
  30. <trainpoints>25.0000</trainpoints>
  31. <bounty>10.0000</bounty>
  32. <buildbounty>10.0000</buildbounty>
  33. <cost resourcetype="Food">80.0000</cost>
  34. <allowedage>1</allowedage>
  35. <armor type="Ranged" value="0.3000">
  36. </armor>
  37. <unittype>LogicalTypeHealed</unittype>
  38. <unittype>LogicalTypeValidSharpshoot</unittype>
  39. <unittype>LogicalTypeNeededForVictory</unittype>
  40. <unittype>LogicalTypeHandUnitsAutoAttack</unittype>
  41. <unittype>LogicalTypeLandMilitary</unittype>
  42. <unittype>LogicalTypeScout</unittype>
  43. <unittype>LogicalTypeValidSPCUnitsDeadCondition</unittype>
  44. <unittype>LogicalTypeGarrisonInShips</unittype>
  45. <unittype>LogicalTypeRangedUnitsAutoAttack</unittype>
  46. <unittype>LogicalTypeRangedUnitsAutoAttackNoVillagers</unittype>
  47. <unittype>LogicalTypeVillagersAttack</unittype>
  48. <unittype>LogicalTypeHandUnitsAttack</unittype>
  49. <unittype>LogicalTypeRangedUnitsAttack</unittype>
  50. <unittype>LogicalTypeMinimapFilterMilitary</unittype>
  51. <unittype>AbstractInfantry</unittype>
  52. <unittype>AbstractHeavyInfantry</unittype>
  53. <unittype>UnitClass</unittype>
  54. <unittype>Military</unittype>
  55. <unittype>Unit</unittype>
  56. <unittype>AbstractPikeman</unittype>
  57. <unittype>AbstractArchaicInfantry</unittype>
  58. <unittype>HasBountyValue</unittype>
  59. <unittype>AbstractCavalryInfantry</unittype>
  60. <unittype>CountsTowardMilitaryScore</unittype>
  61. <unittype>ConvertsHerds</unittype>
  62. <unittype>AbstractHandInfantry</unittype>
  63. <flag>CollidesWithProjectiles</flag>
  64. <flag>ApplyHandicapTraining</flag>
  65. <flag>CorpseDecays</flag>
  66. <flag>ShowGarrisonButton</flag>
  67. <flag>DontRotateObstruction</flag>
  68. <flag>ObscuredByUnits</flag>
  69. <flag>VisibleUnderFogIfGaia</flag>
  70. <flag>Tracked</flag>
  71. <command page="10" column="7">Delete</command>
  72. <command page="10" column="1">Stop</command>
  73. <command page="10" column="0">Garrison</command>
  74. <tactics>swordsman.tactics</tactics>
  75. <protoaction>
  76. <name>BuildingAttack</name>
  77. <damage>100.000000</damage>
  78. <damagetype>Siege</damagetype>
  79. <rof>3.000000</rof>
  80. </protoaction>
  81. <protoaction>
  82. <name>CoverBuildingAttack</name>
  83. <damage>50.000000</damage>
  84. <damagetype>Siege</damagetype>
  85. <rof>3.000000</rof>
  86. </protoaction>
  87. <protoaction>
  88. <name>CoverHandAttack</name>
  89. <damage>10.000000</damage>
  90. <damagetype>Hand</damagetype>
  91. <rof>1.500000</rof>
  92. <damagebonus type="AbstractCavalry">5.000000</damagebonus> <!--重型騎兵倍率-->
  93. <damagebonus type="AbstractLightInfantry">3.50000</damagebonus> <!--突擊步兵倍率-->
  94. <damagebonus type="AbstractLightCavalry">3.0000000</damagebonus> <!--輕型騎兵倍率-->
  95. <damagebonus type="AbstractRangedShockInfantry">2.500000</damagebonus> <!--遠距突擊步兵倍率-->
  96. <damagebonus type="AbstractArtillery">0.000000</damagebonus> <!--砲兵倍率-->
  97. <damagebonus type="AbstractInfantry">0.000000</damagebonus> <!--步兵倍率-->
  98. <damagebonus type="Ship">0.000000</damagebonus> <!--船艦倍率-->
  99. <damagebonus type="AbstractHeavyInfantry">0.000000</damagebonus> <!--重型步兵倍率-->
  100. <damagebonus type="AbstractSkirmisher">0.000000</damagebonus> <!--輕型步兵倍率-->
  101. <damagebonus type="Guardian">0.000000</damagebonus> <!--守護者倍率-->
  102. <damagebonus type="AbstractVillager">0.000000</damagebonus> <!--村民倍率-->
  103. <damagebonus type="Mercenary">0.000000</damagebonus> <!--傭兵倍率-->
  104. <damagebonus type="Hero">0.000000</damagebonus> <!--英雄倍率-->
  105. </protoaction>
  106. <protoaction>
  107. <name>DefendHandAttack</name>
  108. <damage>18.000000</damage>
  109. <damagetype>Hand</damagetype>
  110. <rof>1.500000</rof>
  111. <damagebonus type="AbstractCavalry">5.000000</damagebonus>
  112. <damagebonus type="AbstractLightInfantry">3.50000</damagebonus>
  113. <damagebonus type="AbstractLightCavalry">3.000000</damagebonus>
  114. <damagebonus type="AbstractRangedShockInfantry">2.500000</damagebonus>
  115. </protoaction>
  116. <protoaction>
  117. <name>MeleeHandAttack</name>
  118. <damage>18.000000</damage>
  119. <damagetype>Hand</damagetype>
  120. <rof>1.500000</rof>
  121. <damagebonus type="AbstractCavalry">5.000000</damagebonus>
  122. <damagebonus type="AbstractLightInfantry">3.50000</damagebonus>
  123. <damagebonus type="AbstractLightCavalry">3.000000</damagebonus>
  124. <damagebonus type="AbstractRangedShockInfantry">2.500000</damagebonus>
  125. </protoaction>
  126. </unit>
  127. </protomods>
复制代码
李名样dR发表于 2026-4-1 19:17:59
  1. <techtreemods>
  2. <tech name="Age0German" type="Normal"> <!--(1)加入的國家start-->
  3. <Effect type ='Data' amount ='1.00' subtype ='Enable' relativity ='Absolute'> <!--(2.1) 增加的單位start-->
  4. <Target type ='ProtoUnit'>deJavaSpearman2</Target> <!--增加的單位name-->
  5. </Effect> <!--(2.1) 增加的單位end-->
  6. <Effect type ='Data' amount ='1.00' subtype ='Enable' relativity ='Absolute'> <!--(2.2) 增加的建築start-->
  7. <Target type ='ProtoUnit'>Bank1</Target> <!--增加的建築name-->
  8. </Effect> <!--(2.2) 增加的建築end-->
  9. <Effect type ='Data' amount ='2.00' subtype ='Hitpoints' relativity ='BasePercent'> <!--(2.3) 帶?標籤單位加?數值start-->
  10. <Target type ='ProtoUnit'>AbstractVillager</Target> <!--给带有(村民)标签的单位增加(两倍生命值)-->
  11. </Effect> <!--(2.3) 帶?標籤單位加?數值end-->
  12. </tech> <!--(1)加入的國家end-->
  13. <tech name="HCShipDopplesoldners1" type="Normal">
  14. <dbid>2273</dbid>
  15. <displaynameid>35834</displaynameid>
  16. <cost resourcetype="Ships">1.0000</cost>
  17. <researchpoints>40.0000</researchpoints>
  18. <status>UNOBTAINABLE</status>
  19. <icon>resources\art\units\infantry\dopplesoldner\hc_dopplesoldner_icon.png</icon>
  20. <flag>HomeCity</flag>
  21. <effects>
  22. <effect type="Data" amount="3.00" subtype="FreeHomeCityUnit" unittype="deJavaSpearman2" relativity="Absolute">
  23. <target type="Player">
  24. </target>
  25. </effect>
  26. <effect type="Data" amount="2.00" subtype="FreeHomeCityUnit" unittype="Uhlan" relativity="Absolute">
  27. <target type="Player">
  28. </target>
  29. </effect>
  30. <effect tech="deGermanLogisticianShadow" type="Data" amount="1.00" subtype="FreeHomeCityUnitIfTechObtainable" unittype="Uhlan" relativity="Absolute">
  31. <target type="Player">
  32. </target>
  33. </effect>
  34. </effects>
  35. </tech>
  36. </techtreemods>
复制代码


有些不相關的我放在一起,我沒刪掉,因為我原本那些就只是用來做個記錄
  • こはね : 看上去沒問題,其他是否生效?不清楚是不是你複製過來的時候精簡了代碼,還是真的少加了<effects></effects>?暫時懷疑是缺少<effects></effects>的問題。
  • 李名样dR 回复 こはね : 上面的功能我加其他國家的單位、建築之類的沒有問題,就是在加例如原住民,傭兵之類的不是正常國家可以在兵營或馬廄生產的單位就沒有用
  • 李名样dR : 其他的都有生效
  • 李名样dR : 添加了<effects></effects>也沒用
こはね发表于 2026-4-1 22:07:42
屏幕截图 2026-04-01 220630.png
  • 李名样dR : 加了也沒用
  • こはね 回复 李名样dR : 上傳mod文件
李名样dR发表于 2026-4-4 05:16:21
 本帖最后由 李名样dR 于 2026-4-4 05:18 编辑 

@こはね 文件我先進行壓縮了

LMY.rar

2.61 KB, 下载积分: 钱币 -2 , 经验 3

  • こはね : 晚上測試
こはね发表于 2026-4-5 01:24:55
fe29c08793124b6b95e78ea16c578b8b!400x400.jpeg

总共耗时45分钟

前面的JavaSpearman2被后面的Bank覆盖掉
(注:deJavaSpearman2的de被我删掉了,我有怀疑的前面存在de的问题)

我无论怎样添加,或修改protoy.xml,该调用名、改训练建筑、把flag与unittype删掉,把我以前的代码照搬过来,就是没反应,我一度怀疑是不是文件根本没起作用,后面就删了你添加的Bank,看一下是不是改错文件,结果就出现了
			<Effect type="Data" amount="1.00" subtype="Enable" relativity="Absolute">
<Target type="ProtoUnit">YPBerryWagon1</Target>
</Effect>

<effect type="Data" amount="1.00" subtype="Enable" relativity="Absolute">
<Target type="ProtoUnit">JavaSpearman2</Target>
</effect>
<effect type="Data" amount="1.00" subtype="Enable" relativity="Absolute">
<Target type="ProtoUnit">Bank</Target>
</effect>

上述代码最后生效的是bank

			<effect type="Data" amount="1.00" subtype="Enable" relativity="Absolute">
<Target type="ProtoUnit">JavaSpearman2</Target>
</effect>
<effect type="Data" amount="1.00" subtype="Enable" relativity="Absolute">
<Target type="ProtoUnit">Bank</Target>
</effect>
<Effect type="Data" amount="1.00" subtype="Enable" relativity="Absolute">
<Target type="ProtoUnit">YPBerryWagon1</Target>
</Effect>


上述代码最后生效的是YPBerryWagon1,银行已经不可建造
解决方法是给每一行都添加 mergeMode="add"
			<effect type="Data" amount="1.00" subtype="Enable" relativity="Absolute" mergeMode="add">
<Target type="ProtoUnit">JavaSpearman2</Target>
</effect>
<effect type="Data" amount="1.00" subtype="Enable" relativity="Absolute" mergeMode="add">
<Target type="ProtoUnit">Bank</Target>
</effect>
<Effect type="Data" amount="1.00" subtype="Enable" relativity="Absolute" mergeMode="add">
<Target type="ProtoUnit">YPBerryWagon1</Target>
</Effect>

截图被我改成城镇中心建造了
屏幕截图 2026-04-05 012416.jpg

“如果可以在基础数据中找到匹配的节点,则默认为modify,否则为add”:第一个subtype="Enable"被判断成mergeMode="add",往后的subtype="Enable"被判断成mergeMode="modify"

这官方给人挖大坑,又不搞示例、提醒
00070.jpg
  • 李名样dR : 哦哦,非常感謝大佬協助測試,待會我再進行測試
  • 李名样dR : 成功啟用了,再次感謝大佬費心費時的協助
  • こはね 回复 李名样dR : 赶紧去把官方打一顿
跳转到