找回密码
 点一下
查看: 1215|回复: 5

xml文档中结构模板的继承问题

[复制链接]
发表于 2011-6-30 00:55:25 | 显示全部楼层 |阅读模式
感觉很简单的问题,结果使用的时候总是出现一堆堆的状况,最可恶的还是自己试验了半天还是解决不了,我表示我整个人都思密达了。

[codes=xml]
    <SCost id="Casd1">
        <Charge>
            <CountMax value="1"/>
            <CountStart value="1"/>
            <CountUse value="1"/>
        </Charge>
    </SCost>
    <SCost id="Casd2">
        <Charge>
            <CountMax value="3"/>
            <CountStart value="3"/>
            <CountUse value="3"/>
        </Charge>
    </SCost>
    <CBehaviorBuff id="asd1">
        <DamageResponse  Chance="0.2">
            <Cost parent="Casd1"/>
        </DamageResponse>
    </CBehaviorBuff>
    <CBehaviorBuff id="asd2">
        <DamageResponse  Chance="0.2">
            <Cost>
                <Charge>
                    <CountMax value="2"/>
                    <CountStart value="2"/>
                    <CountUse value="2"/>
                </Charge>
            </Cost>
        </DamageResponse>
    </CBehaviorBuff>
    <CBehaviorBuff id="asd3" parent="asd2"/>
    <CBehaviorBuff id="asd4" parent="asd2">
        <DamageResponse ModifyAmount="200.0"/>
    </CBehaviorBuff>
[/codes]
就是写了上面一点东西,结果是完全跟自己想象当中不一样:asd1的parent报错了,最上面两个SCost结构完全没起到作用,后面只是默认继承了后面的那个 ;asd2中的SCost结构除了修改的部分,其余的并没有继承默认的SCost属性;asd3和asd4继承的SCost居然也不一样。

这个情况是怎么回事?
发表于 2011-6-30 11:23:29 | 显示全部楼层
我测试了下,结果证明结构继承的规则确实有较大变化。

现在无法以parent来指定类的哪个属性继承哪个结构模板,只会直接继承在书写顺序中目前模板位置上推最后一个结构模板的属性。


感觉反而退步了

完全不明白改动原因。



实际上xml的规则从beta到现在有了不小的变化。有时间我还是把我那个系列好好修改一遍为好。
回复

使用道具 举报

发表于 2011-6-30 11:28:46 | 显示全部楼层
这个改动实在太渣了。其实我本来有一套编写方案是基于原本那个语法的。只好暂且算老。


不过我怀疑这一改动其实并非是取消了结构模板的parent指定。而是之前某个改动的后遗症:也就是从某个版本开始,parent和id这些token只能写在第一行了。所以就没办法在属性里面写parent了。


有意识地作出这样的改动是没道理的。
回复

使用道具 举报

 楼主| 发表于 2011-6-30 12:25:13 | 显示全部楼层
asd3和asd4的不同点也可以看出,如果一个结构做出修改的话,会默认继承结构模板的属性,而不是parent中指定的基础模板中结构的各项属性,不知道是不是原来就是这样的设定。我现在迫切需要这个问题的解决方法,难道除了重新覆盖没有别的方法了吗?
回复

使用道具 举报

发表于 2011-6-30 12:31:28 | 显示全部楼层
很显然以前肯定不是这样。而且就算继承也是继承没有id的结构模板/
回复

使用道具 举报

 楼主| 发表于 2011-6-30 12:39:50 | 显示全部楼层
而且在编辑器中重新设定继承父模板的话,这些东西还是会修改过来的,不过它使用的也是覆盖的方法。

那么就只好暂时不使用继承的方法了。真糟糕啊,SE什么时候变这么糟糕了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 04:08 , Processed in 0.049229 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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