找回密码
 点一下
楼主: 麦德三世

[教程]SC2 XML数据文件中的继承、追加、覆盖规则和语法(20楼补充了包外文件的特殊情况)

[复制链接]
 楼主| 发表于 2010-3-5 00:16:02 | 显示全部楼层
至于放在包外的数据文件,果然和我猜测的一样。

一次造3个的问题确实是属性数组导致的,但诡异的是,它另一方面又是以文件粒度来覆盖的。

所以如果写个空的
    <CUnit id="Marine">
    </CUnit>
放在包外,那么会发现进入游戏后机枪兵会出问题。什么技能也没有,也不能动。输出技能列表是空的。

但是如果把它在MPQ里的模板原样贴过来也会出问题。

输出它的技能列表就会发现它的技能重复了好几次。

3.jpg

于是就变成了这样:

目前包外XML数据文件的覆盖规则是,如果包外的模板没有写某个属性的值,那么该属性就根本不继承。

如果包外的模板不写index而直接写了一个属性数组,那么它会将这个数组里的值不断重复。

于是这样变成了既以文件为覆盖粒度属性数组又出现 问题的情况了。

我认为暴雪没理由有意如此设定的,这应该是个bug。
回复

使用道具 举报

发表于 2010-3-5 00:31:27 | 显示全部楼层
目前Versions和Mods里都有UnitData.xml,而且AbilArray都没写index,这个为什么是覆盖呢?
回复

使用道具 举报

 楼主| 发表于 2010-3-5 00:37:12 | 显示全部楼层
Versions里是以文件粒度覆盖的。

但Core和Liberty里的却是互补的。

Versions是通过写明完整的包外包内路径覆盖的,有点不一样吧。
回复

使用道具 举报

发表于 2010-3-5 00:41:10 | 显示全部楼层
此外还有地图中的配置,应该也是和包外的一样吧
回复

使用道具 举报

 楼主| 发表于 2010-3-5 00:43:08 | 显示全部楼层
不一样,地图中的情况参照我主贴里的情况。

覆盖是属性粒度的,并存在属性数组追加的情况。

包外的情况则参照20楼描述的特殊情况。
回复

使用道具 举报

发表于 2010-3-5 12:35:22 | 显示全部楼层
看了LS还是不太明白

意思是说,如果在地图里写个空的
    <CUnit id="Marine">
    </CUnit>

的话,机枪兵是没有任何变化的对么?
回复

使用道具 举报

 楼主| 发表于 2010-3-5 12:36:16 | 显示全部楼层
对~~~
回复

使用道具 举报

发表于 2010-3-5 12:44:07 | 显示全部楼层
i see, htx
回复

使用道具 举报

发表于 2010-3-8 11:04:54 | 显示全部楼层
也就是如果通过包外修改 得把文件完整放出来 修改么..(MPQ 最好直接拿掉 省得遇到那bug?
回复

使用道具 举报

 楼主| 发表于 2010-3-8 12:59:50 | 显示全部楼层
不是,这样它还是会有问题的。它不是单纯地继承了属性数组部分。而是那部分会重复。
回复

使用道具 举报

发表于 2010-3-13 17:59:24 | 显示全部楼层
我将自己修改的UnitData.xml 放到地图文件的 \\Base.SC2Data\\GameData\\ 目录下问什么没有生效?
只有改Versions里的或者游戏根目录的才有用。有谁知道是什么问题么?
回复

使用道具 举报

发表于 2010-3-13 20:12:03 | 显示全部楼层
找的问题了,app目录里面文件才是主程序载入的地图文件,改的文件一直不对。。。
费了我好长时间。。。
回复

使用道具 举报

发表于 2010-6-9 15:58:01 | 显示全部楼层
好东西
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-24 12:28 , Processed in 0.150442 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表