收起左侧

[求助] 决定版拉科塔建筑打包的原理是什么

[复制链接]
索绮特发表于 2024-7-17 13:26:26
1.已知通过打卡营地变动,可使大部分建筑可以转变成建筑马车。
2.营地变动作用是:
<effect type="Data" amount="2.00" subtype="FreeHomeCityUnit" unittype="WarHutTravois" relativity="Absolute"><target type="Player"></target></effect>
<effect type="Data" amount="0.75" subtype="BuildPoints" relativity="Percent"><target type="ProtoUnit">Building</target></effect>
<effect type="TechStatus" status="active">DETownCenterTransformTravois</effect>
<effect type="TechStatus" status="active">DECommunityPlazaTransformTravois</effect>
<effect type="TechStatus" status="active">DEMarketTransformTravois</effect>
<effect type="TechStatus" status="active">DECorralTransformTravois</effect>
<effect type="TechStatus" status="active">DEWarHutTransformTravois</effect>
<effect type="TechStatus" status="active">DEFarmTransformTravois</effect>
<effect type="TechStatus" status="active">DEEmbassyTransformTravois</effect>
<effect type="TechStatus" status="active">DEPlantationTransformTravois</effect>
<effect type="TechStatus" status="active">DEDockTransformTravois</effect>
3.设定中的科技只有图标和研究时间:
<tech name="DECommunityPlazaTransformTravois" type="Normal">
<dbid>10135</dbid>
<researchpoints>20.0000</researchpoints>
<status>UNOBTAINABLE</status>
<icon>resources\images\icons\command\generate_influence_icon.png</icon>
</tech>
4.已排除Power和tactics的作用
こはね发表于 2024-7-17 21:37:12
原理是protounitcommands.xml,按钮文件的<associatedtech>techname</associatedtech>绑定了科技,然后protoy中<transformcommand>protounitcommandname</transformcommand>作用不明,懒得测(已经测了2个小时了),似乎是用来绑定protounitcommands.xml按钮?感觉有点多此一举;然后<command page="12" column="0">protounitcommandname</command>是祖传的按钮设定;然后科技设定了研发时间,变成了使用按钮所需时间;
有必要搞这么复杂,决定版的程序员吃饱了闲着没事干,直接给按钮加一个使用时间不是更好吗

经过实测,没有办法新增任何转换,你也没办法改动任何转换,像圣典12-2的关闭城门也没办法添加,因为决定版对uiTransformSelectedUnit作了严格判断,只能由特定单位转换成特定单位,至于为什么这样做的?原因我是非常清楚的,但我不说,印象中好像是当年与叉烧交换得到的信息,然后叉烧后面又把我的东西给了狗乌鸦

以下改动,我随便挑了一个deCommunityPlazaTransformTravois,改了绑定科技,已经转换后的单位,反复测试确定是只能由特定单位转换成特定单位,没有办法自定义转换后的单位;我将按钮修改成了转变城门,村庄没办法使用,城墙可以。顺便再透露点信息,我拿城墙搞测试是因为城墙转换是有奇效的,不过决定版已经失效了。

<?xml version="1.0" encoding="utf-8"?>

<protomods>
<unit id="925" name="ypVillage">
<command page="12" column="0">deCommunityPlazaTransformTravois</command>
<transformcommand>deCommunityPlazaTransformTravois</transformcommand>
<unittype>AbstractWall</unittype>
<flag>ShowTactics</flag>
<flag>UnitTransformFree</flag>
</unit>
<unit id="925" name="WallStraight5">
<command page="12" column="0">deCommunityPlazaTransformTravois</command>
<transformcommand>deCommunityPlazaTransformTravois</transformcommand>
<unittype>AbstractWall</unittype>
<flag>ShowTactics</flag>
<flag>UnitTransformFree</flag>
</unit>
</protomods>


<?xml version="1.0" encoding="utf-8"?>

<techtreemods>
<tech name="YPAge0Chinese" type="Normal">
<effects>
<effect type="TechStatus" status="active">test001</effect>
</effects>
</tech>
<tech name="test001" type="Normal">
<dbid>10135</dbid>
<researchpoints>3.0000</researchpoints>
<status>UNOBTAINABLE</status>
<icon>resources\images\icons\command\generate_influence_icon.png</icon>
</tech>

</techtreemods>


	<protounitcommand>
<name>deCommunityPlazaTransformTravois</name>
<icon>resources\images\icons\command\command_pack.png</icon>
<command>uiTransformSelectedUnit("CWallGate", true)</command>
<commandpassesunitid/>
<associatedtech>test001</associatedtech>
<rollovertextid>125508</rollovertextid>
<disabledrollovertextid>125508</disabledrollovertextid>
<donotallowifunitdamaged/>
<canqueue/>
<transformselected/>
</protounitcommand>




  • こはね : 好像冤枉決定版程序員了,associatedtech在舊版就存在
  • こはね : 糾正一下,<transformcommand>protounitcommandname</transformcommand>後面加上去的作用不明(重啟決定版需要幾分鐘,我懶得測有什麼用),<transformcommand>不是必須的;而按鈕綁定科技則是舊版的廢棄代碼,實測可用
こはね发表于 2024-7-17 22:46:33
旧版可用:以城门转换为例子,protounitcommands.xml设定绑定test502,你需要改良test502才会看到转换按钮,而转换所需时间则是秒研发,确定是没做好的废案,也不能算是没做好,可能当初只是设定用于科技激活按钮也说不定
protounitcommands.xml
<protounitcommand>
<name>Transform</name>
<icon>art\buildings\wall\gate_icon_64x64</icon>
<command>uiTransformSelectedUnit("CWallGate")</command>
<rollovertextid>24785</rollovertextid>

<AssociatedTech>test502</AssociatedTech>
</protounitcommand>

<Tech name="test502" type="Normal">
<displaynameid>999402</displaynameid>
<DBID>5290</DBID>
<ResearchPoints>3.0000</ResearchPoints>
<Status>OBTAINABLE</Status>
<Icon>ui\units\ironclad_icon</Icon>
<Flag>HomeCity</Flag>
<Flag>CountsTowardMilitaryScore</Flag>
<Effects>
<Effect type ='TextOutput'>999402</Effect>
</Effects>
</Tech>

以废弃的Stance1做修改;然后添加转换xpAdvancedBalloon,因为陆地单位存在体积原因,没办法完成转换,要用空中单位。城门只要没有单位阻挡则可以无视体积问题所以我上面说城墙单位是有奇效的,大概率是<unittype>AbstractWall</unittype>的效果,未实测。 <protounitcommand>
<name>Stance1</name>
<icon>art\ui\command\stance_aggresive_on</icon>
<icon>art\ui\command\formation_line_on</icon>
<command>uiTransformSelectedUnit("xpAdvancedBalloon")</command>
<rollovertextid>24785</rollovertextid>

<AssociatedTech>test502</AssociatedTech>
</protounitcommand>旧版完成了转换。

而决定版可以排除的单位体积的问题了,改成空中单位也没办法转换,确认是做了特定检测,只能特定单位转换特定单位。
<protounitcommand>
<name>deCommunityPlazaTransformTravois</name>
<icon>resources\images\icons\command\command_pack.png</icon>
<command>uiTransformSelectedUnit("xpAdvancedBalloon", true)</command>
<commandpassesunitid/>
<associatedtech>test001</associatedtech>
<rollovertextid>125508</rollovertextid>
<disabledrollovertextid>125508</disabledrollovertextid>
<donotallowifunitdamaged/>
<canqueue/>
<transformselected/>
</protounitcommand>



  • 索绮特 : 居然这么复杂
  • こはね : 决定版的看5楼,似乎就是unittransform.xml定义了可转换单位
孤称枭张发表于 2024-8-12 11:44:13
不过世界时代(Age of World)新增了不少命令,其中就有围墙转化为城堡、哨塔等防御工事的,但我还没有吃透到底是怎么做到的,不过作为决定版mod,直接修改主程序这个应该是可以被排除的,有兴趣可以研究研究,到时候可以共享一下心得
  • こはね : 3G那个MOD?直接劝退;根据你所说,我去data找了一下,有个unittransfrom.xml
こはね发表于 2024-8-13 00:29:56
我在data.bar找了下,有个unittransform.xml似乎就是这个文件定义了转换,未作测试

<?xml version="1.0" encoding="utf-8"?>
<unittransforms>
<transform>
<from>WallStraight5</from>
<to>CWallGate</to>
</transform>
<transform>
<from>deBuilderKingdom</from>
<to>deCrateofInfluenceSokoto</to>
<tech>DEHCSokotoChronicle</tech>
</transform>
<transform>
<from>TownCenter</from>
<to>CoveredWagon</to>
<tech>DEHCCampMovements</tech>
<command>deTownCenterTransformTravois</command>
</transform>
<transform>
<from>CommunityPlaza</from>
<to>deCommunityPlazaTravois</to>
<tech>DEHCCampMovements</tech>
<command>deCommunityPlazaTransformTravois</command>
</transform>
<transform>
<from>Market</from>
<to>deMarketTravois</to>
<tech>DEHCCampMovements</tech>
<command>deMarketTransformTravois</command>
</transform>
<transform>
<from>Corral</from>
<to>deCorralTravois</to>
<tech>DEHCCampMovements</tech>
<command>deCorralTransformTravois</command>
</transform>
<transform>
<from>WarHut</from>
<to>WarHutTravois</to>
<tech>DEHCCampMovements</tech>
<command>deWarHutTransformTravois</command>
</transform>
<transform>
<from>Farm</from>
<to>FarmTravois</to>
<tech>DEHCCampMovements</tech>
<command>deFarmTransformTravois</command>
</transform>
<transform>
<from>NativeEmbassy</from>
<to>deEmbassyTravois</to>
<tech>DEHCCampMovements</tech>
<command>deEmbassyTransformTravois</command>
</transform>
<transform>
<from>Plantation</from>
<to>dePlantationTravois</to>
<tech>DEHCCampMovements</tech>
<command>dePlantationTransformTravois</command>
</transform>
</unittransforms>

跳转到