游戏精英
 
- 贡献度
- 772
- 金元
- 21938
- 积分
- 5282
- 精华
- 0
- 注册时间
- 2009-11-6
|
本帖最后由 jluwangyu 于 2025-11-27 10:54 编辑
你可以运用Condition语句对你想要的mod单独做针对性的修改。我给你举一个例子:
比如我的名人堂全卡片刷卡mod里面的橙卡卡包id是:2023010013
然后我在网上看到有其他人发的卡片mod也很好,也想把它的卡片也加到我的橙卡卡包里。
然后我打开它的mod,发现它的橙卡id是:1742001078,它的mod-id是:fertilities-pack
那么我只需要写一段下面的语句就可以:
<!-- mod适配 -->
<ModOp Type="add" GUID='2023010013' Path="/Values/RewardPool/ItemsPool" Condition="#fertilities-pack">
<Item><ItemLink>1742001078</ItemLink></Item> <!-- 把对方的橙卡添加到我的橙卡卡包里 -->
</ModOp>
这种写法有两个优点:
1,只需要对自己想要的地方做单独修改,无需全部复制过来。
2,Condition语句只有当mod的使用者两个mod都打上的时候才生效,就还拿上面的例子继续说明。如果张三没有打mod-id是fertilities-pack那个mod,那么整个上面这些语句就不会生效,那么橙卡卡包里就不会有1742001078这个卡,如果张三打了mod-id是fertilities-pack的卡包,那么上面的语句就会生效,橙卡卡包里就多了一张卡。这样就无需让mod使用者二选一了,而是针对mod使用者是否使用了其他的mod而动态控制自己mod的内容。
Condition语句可以加在任何一段mod的语法里,你无需把我整个mod的代码全部复制过来,只需要在我原mod里面找到你想要改的地方的id,然后自己做一个mod,加上一句Condition,把我的mod的id配置到Condition后面就可以,mod的id就是你下载下来的mod文件夹最外层有一个modinfo文件,打开第一行就是这个mod的id,这个id不同mod之间是不可以重复的。是系统识别mod的唯一标识。
我再举一个例子。比如我的风云人物卡包拓展mod的mod-id是:influential-items-extended,里面屋大维那张卡片是给所有工厂加30%生产力,你觉得不够多,想改成50%,然后你打开我的mod,看到屋大维的buff的guid:2023020014,是那么你可以这么写:
<!-- mod适配 -->
<ModOp Type="merge" GUID='2023020014' Path="/Values/FactoryUpgrade/ProductivityUpgrade" Condition="#influential-items-extended">
<value>50</value> <!-- 把屋大维的生产力buff加成50% -->
</ModOp>
这样,只有既打了你的mod的又打了我的mod的用户,屋大维的生产力才会变成50%,没打你的mod的用户,屋大维还是30%。
Condition语句就是适合这种为了不同mod之间相互支持,相互变更子版本而使用的语句。让用户根据自身的喜好,选择不同的mod组合,相互之间又不会冲突。
然后回到你的例子里,如果你想要把你的三张卡,也加到名人堂卡片刷卡的mod支持里,先要找到名人堂卡片刷卡mod的mod-id,然后再看你这三张卡是什么属性的,假如是橙卡,就到名人堂卡片刷卡mod里找橙卡所在的那个卡池id,如果是紫卡,就找紫卡的卡池id,现在假如要加到橙卡里,那么可以这么写:
<!--mod兼容:将3张卡片加入名人堂刷卡mod橙卡卡池 -->
<ModOp Type="add" GUID='【橙卡卡池ID】' Path="/Values/RewardPool/ItemsPool" Condition="#【名人堂刷卡mod-id】">
<Item><ItemLink>2025020020</ItemLink></Item><!-- 小猪专属卡片ID-->
<Item><ItemLink>2025020030</ItemLink></Item><!-- 小马专属卡片ID-->
<Item><ItemLink>2025020040</ItemLink></Item><!-- 小兔专属卡片ID-->
</ModOp>
然后我看你还把你的三张卡加到了npc的港口里,这个你就直接在你自己的mod里写add就可以了,因为这里没有用到我的mod的内容,npc港口是游戏通用数据,不是我造的。所以既不需要修改我的mod,也不需要加Condition,而是直接在你的mod里单独写就可以了
<!--将3张卡片加入所有港口NPC售卖池 -->
<ModOp Type="add" GUID='43019,43021,43020,43017,43022,42999,43011,43012,43013,43014,43015,43016,43018' Path="/Values/RewardPool/ItemsPool">
<Item><ItemLink>2025020020</ItemLink></Item><!-- 小猪专属卡片ID-->
<Item><ItemLink>2025020030</ItemLink></Item><!-- 小马专属卡片ID-->
<Item><ItemLink>2025020040</ItemLink></Item><!-- 小兔专属卡片ID-->
</ModOp>
|
|